認証コードを含むコールバックURLが返される認証URLにユーザーをリダイレクトする次のコードがあります。 (そこにはポップアップが承認を同じウィンドウで行われ、ではありません)承認中に認証コードを抽出できません
authStart(e) {
e.preventDefault();
var options = {
client_id: 'some-id',
scopes: ["user:email", "notifications"]
};
var loginUrl = 'https://github.com/login/oauth/authorize?';
var authUrl = loginUrl + 'client_id=' + options.client_id + '&scope=' + options.scopes;
window.open(authUrl, "_parent");
var authCode = this.getAuthCode(window.location.href);
console.log(authCode);
getAuthCode(url){
var error = url.match(/[&\?]error=([^&]+)/);
if (error) {
throw 'Error getting authorization code: ' + error[1];
}
return url.match(/[&\?]code=([\w\/\-]+)/)[1];
},
がこれを実行すると、私は正常にウィンドウにコールバックURLを取得することができるが、認証コードを取得することができません。私が考えているのは、getAuthCode関数はwindow.open文の直後に呼び出され、ウィンドウが完全にロードされていないために取得するものがないからです。これを避けるために何をすべきか。 ReactJSとノードを使用しています。
これを避けるために私は何をすべきですか?私はちょっと混乱しています。 –
@AronKarmer githubはユーザをデフォルトで同じページにリダイレクトするので、ウィンドウが読み込まれるときに 'code'パラメータのチェックを追加する必要があります。存在する場合は、ユーザーを認証できます。 –