私はchrome.identity.launchWebAuthFlowを使用して、Doorkeeper gemを使用してOAuth2プロバイダとして設定されている私のRailsアプリケーションから認証コードを取得しています(物事のDoorkeeper側が機能しています)。launchWebAuthFlowコールバックが実行されず、Chrome拡張ウィンドウがすぐに終了しますか?
だから私は、Chromeの拡張機能から、この方法で私のサーバーに要求し、その後送信:
requestGrant: function(){
chrome.identity.launchWebAuthFlow(
{
'url': authService.grantEndPoint(),
'interactive': true
}, function(redirect_url){
/* Extract auth code from redirect_url */
var code = authService.extractCode(redirect_url);
alert(code);
authService.getAccessToken(code);
}); //launchWebAuthFlow ends here
}
そして、私のサーバは要求を受信した302で
https://<my_chrome_extension_name>.chromiumapp.org/oauth2?code=<access_code_generated_by_oauth>
にリダイレクトします。
ただし、Chrome拡張機能はすぐに終了し、launchWebAuthFlowのコールバック機能は実行されません。コールバックでalert()を呼び出す(実行されない)ため、実行していないことが分かっています。また、アクセストークンをサーバーに要求します(サーバーは要求を受け取りません)。
launchWebAuthFlowウィンドウがサーバーの認証フローのWebビューであるため、launchWebAuthFlowが呼び出されたときにクロム拡張が正しく終了している可能性があります。 )
launchWebAuthFlowのデフォルトの動作は、ドキュメントに従ってウィンドウを閉じることですが、コールバックはまだ実行されていません。
コールバック関数を実行してクロム拡張ウィンドウが閉じないようにするにはどうすればよいですか?