Войдите с помощью Windows Live Connect, аналогично "postmessage" Google

В моем веб-приложении есть кнопка "Войти через 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, особенно URI перенаправления "redirect_uri": "postmessage" и "authentication_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?

Есть ли альтернативы "postmessage" и "force" в MS Live?

Можно ли добиться того же в обработчике, на который указывает redirect_uri? Я не нашел ни одного примера для этого обработчика, и в дополнение к получению и передаче кода, он должен закрывать окно согласия.

0 ответов

Другие вопросы по тегам