1
我正在爲學校構建一個Chrome擴展,並且需要使用moodle進行身份驗證,這意味着我需要安裝OAuth或OpenID,我打開一個頁面到moodle,然後用戶登錄在/批准該應用程序,然後返回一個令牌,然後我可以使用它來進行普通的moodle Web服務調用。這可能嗎?OAuth - 使用Moodle登錄
感謝, 阿里
我正在爲學校構建一個Chrome擴展,並且需要使用moodle進行身份驗證,這意味着我需要安裝OAuth或OpenID,我打開一個頁面到moodle,然後用戶登錄在/批准該應用程序,然後返回一個令牌,然後我可以使用它來進行普通的moodle Web服務調用。這可能嗎?OAuth - 使用Moodle登錄
感謝, 阿里
我已經嘗試進行身份驗證的擴展使用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;
}
})
然後我就可以完成授權過程了,瓶坯請求一定要保存在localStorage中。
我不太清楚你的意思,是的,代碼會非常有幫助。 –
什麼是'bgOauth',什麼是authURL? –
bgOauth是Oauth方法的一個小集合,我在處理生成Oauth URL時需要對它們進行簽名。 authURL是根據上述描述生成的URL,它是我發送請求的地址,這可能對您有所不同,我對moodle沒有經驗。 – jbaldwin