学校用の chrome 拡張機能を構築しています。moodle で認証する必要があります。つまり、OAuth または OpenID のようなセットアップが必要です。moodle のページを開いて、ユーザーがアプリにログイン/承認し、トークンを取得します。が返され、これを通常のムードル Web サービス呼び出しに使用できます。これは可能ですか?
ありがとう、アリ
学校用の chrome 拡張機能を構築しています。moodle で認証する必要があります。つまり、OAuth または OpenID のようなセットアップが必要です。moodle のページを開いて、ユーザーがアプリにログイン/承認し、トークンを取得します。が返され、これを通常のムードル Web サービス呼び出しに使用できます。これは可能ですか?
ありがとう、アリ
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 に保存します。