Oauth 認証用の新しい (タブ) ウィンドウを開き、認証が成功したときに前のタブ (ログイン済み) に戻るための認証戦略は何ですか?
私は、Twitter、Facebook、および Google に対して、passportjs 認証戦略を使用しています。しかし、そのすべてが同じウィンドウタブで認証を行います。上記を行うために従うことができる事前定義された戦略はありますか?
a(target="_blank") を使用して新しいアカウントで許可ウィンドウを開くことはできますが、(ユーザーによる) アカウント認証時に前のタブに戻りません。
編集(次の回答に基づく)
ログインページは次のようになります:-
!!!
html
head
script.(type='text/javascript')
function newWindow (auth_target) {
authWindow = window.open(auth_target);
var authenticationSuccessUrl = "/home"
authWindow.onClose = function () {
alert('onClose called.');
authWindow.close();
window.location = authenticationSuccessUrl;
}
}
body
button(type="button", onclick="newWindow('auth/google');").btnLogin with Gmail
新しいウィンドウ(家)のために私は書いた: -
!!!
html
head
script(type='text/javascript').
function onAuthSuccess() {
authWindow=window.location;
window.onClose();
}
body(onload='onAuthSuccess();')
私が書くはずだった完全なコードではありませんが、これでもうまくいきません。中間認証ウィンドウ (Google による、パスワード入力用) の後にホームページが呼び出された場合、上記のコードは機能せず、ウィンドウは閉じません。
// 追加情報として、必要がなければ無視します。
window.close()
開くきっかけとなった親ウィンドウが開いている場合にのみ機能します。現在のウィンドウがスタンドアロンの場合、上記の window.close() はウィンドウを閉じません。同様に、上記のホームページ コードは現在のウィンドウを閉じることができません。