Login OAuth-使用Moodle登录

Login OAuth-使用Moodle登录,login,oauth,google-chrome-extension,openid,moodle,Login,Oauth,Google Chrome Extension,Openid,Moodle,我正在为一所学校构建一个chrome扩展,它需要与moodle进行身份验证,这意味着我需要一个OAuth或类似OpenID的设置,我打开一个页面给moodle,然后用户登录/批准应用程序,然后返回一个令牌,然后我可以将其用于正常的moodle web服务调用。这可能吗 谢谢, Ari我在尝试使用oauth对扩展进行身份验证时遇到了类似的问题,我使用的流程是首先检查是否存储了令牌:如果没有,则从后台页面打开一个新选项卡,这意味着在首次安装扩展时将运行该选项卡,尽管如果有令牌,我们将继续运行请求,但


我正在为一所学校构建一个chrome扩展,它需要与moodle进行身份验证,这意味着我需要一个OAuth或类似OpenID的设置,我打开一个页面给moodle,然后用户登录/批准应用程序,然后返回一个令牌,然后我可以将其用于正常的moodle web服务调用。这可能吗

谢谢,
Ari

我在尝试使用oauth对扩展进行身份验证时遇到了类似的问题,我使用的流程是首先检查是否存储了令牌:如果没有,则从后台页面打开一个新选项卡,这意味着在首次安装扩展时将运行该选项卡,尽管如果有令牌,我们将继续运行请求,但我要求用户在审批完成后关闭该选项卡,我在创建该选项卡后为其设置了一个侦听器,然后我知道该过程已经完成,我可以发出请求

如果你需要这部分的代码,我很乐意发布

祝你好运

更新:

检查我们是否保存了代币:

if(localStorage.token){
    if(localStorage.secret){
如果没有:

else{
    var authURL = bgOauth.requestTokenCall();
    var req = new XMLHttpRequest();
    req.overrideMimeType("application/json");
    req.onload = bgOauth.processRequestTokenData;
    req.open("get", authURL, true);
    req.send();
    console.log('sent')
}
然后我处理来自此的响应,如果一切正常,则打开一个新选项卡:

startPopup : function(destinationurl) {

    chrome.tabs.create({url : destinationurl}, 
    function(tab){bgOauth.newTabId = tab.id})
    alert(Instructions)     
    chrome.tabs.onRemoved.addListener(function(tabId)
    {
        console.log('oh no, closed');
        if(tabId == bgOauth.newTabId){
            console.log('freaking sweet!');
            bgOauth.handleApproval()
        }   
        else{
            return false;
        }
    })

然后我可以完成授权过程,preform请求确保将您的凭据保存在localStorage中。

我在尝试使用oauth验证扩展时遇到类似问题,我使用的流程是首先检查是否存储了令牌:如果没有,则从后台页打开一个新选项卡,这意味着它将在第一次安装扩展时运行,尽管如果有令牌,我们将继续运行我们的请求,但我要求用户在批准完成后关闭选项卡,我在创建该选项卡后设置了一个侦听器,然后我知道该过程已完成,我可以发出请求

如果你需要这部分的代码,我很乐意发布

祝你好运

更新:

检查我们是否保存了代币:

if(localStorage.token){
    if(localStorage.secret){
如果没有:

else{
    var authURL = bgOauth.requestTokenCall();
    var req = new XMLHttpRequest();
    req.overrideMimeType("application/json");
    req.onload = bgOauth.processRequestTokenData;
    req.open("get", authURL, true);
    req.send();
    console.log('sent')
}
然后我处理来自此的响应,如果一切正常,则打开一个新选项卡:

startPopup : function(destinationurl) {

    chrome.tabs.create({url : destinationurl}, 
    function(tab){bgOauth.newTabId = tab.id})
    alert(Instructions)     
    chrome.tabs.onRemoved.addListener(function(tabId)
    {
        console.log('oh no, closed');
        if(tabId == bgOauth.newTabId){
            console.log('freaking sweet!');
            bgOauth.handleApproval()
        }   
        else{
            return false;
        }
    })

然后我可以完成授权过程,preform请求确保将您的凭据保存在localStorage中。

我不太清楚您的意思,是的,代码将非常有用。什么是
bgouth
,什么是authURL?bgouth是我制作的一个小的Oauth方法集合,用于在需要签名时生成Oauth URL。authURL是根据上述描述生成的URL,它是我随后将请求发送到的URL,这可能与您不同,我没有moodle方面的经验。我不太清楚您的意思,是的,代码将非常有用。什么是
bgouth
,什么是authURL?bgouth是我制作的一个小的Oauth方法集合,用于在需要签名时生成Oauth URL。authURL是根据上述描述生成的URL,它是我随后将请求发送到的URL,这可能与您不同,我没有使用moodle的经验。