Web アプリに [Google でサインイン] ボタンがあります。これにより、同意ウィンドウが開き、ユーザーがログインした後にコードが取得され、サーバー側の検証のためにコードがサーバーに送信されます。これは私が使用するJavascriptコードです:
gapi.load('auth2', function() {
auth2 = gapi.auth2.init({
client_id: CLIENT_ID,
scope: googleScopes
});
});
$('#signInButtonGoogle').click(function() {
auth2.grantOfflineAccess({'redirect_uri': 'postmessage', 'approval_prompt' : 'force'}).then(onGoogleSignIn);
});
「Outlook.com でサインイン」ボタンを実装しようとしていますが、これはまったく同じように動作するはずですが、Google の機能、特に「redirect_uri」:「postmessage」リダイレクト URI と「approval_prompt」が不足しているようです。 : '力'。
これは私の現在の Microsoft Live Connect Javascript コードです。
WL.Event.subscribe("auth.login", onMsnSignIn); <== never got to a point where this actually worked
WL.init({
client_id: CLIENT_ID,
redirect_uri: REDIRCT_URI, <== no 'postmessage' option :-(
scope: "wl.signin",
response_type: "code"
});
// this is instead of 'approval_prompt' : 'force', but I'm not sure it really works
WL.getLoginStatus(function(response) {
if (response.status == 'connected') {
WL.logout();
}
});
$('#signInButtonLive').click(function () {
WL.login({
scope: msnScopes // additional scopes required
}).then(
// this works only when I have a session in another Microsoft site, like MSDN
// but I want to force the user to sign in with the right Live ID
function (session) {
console.log(session);
WL.api({
path: "me",
method: "GET"
}).then(
function (response) {
console.log(response)
})
},
function (sessionError) {
console.log('error');
}
);
});
では、Google サインインと同様の機能を持つ方法はありますか?
MS Live の「postmessage」と「force」に代わるものはありますか?
redirect_uri が指すハンドラーで同じことを達成することは可能ですか? このハンドラーの例は見つかりませんでした。コードを受け取って渡すだけでなく、同意ウィンドウを閉じる必要があります。