4

Web アプリケーションで、ユーザーが API クライアント ライブラリの auth コマンドを使用してログインできるようにしていますが、Google API JavaScript クライアント ライブラリのログアウト オプションが見つかりません。

アプリケーションとGoogleアカウントからログアウトする方法を提案できますか??

私のログインコードは:

var OAUTHURL = 'https://accounts.google.com/o/oauth2/auth?';
var VALIDURL = 'https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=';
var SCOPE = 'https://www.googleapis.com/auth/userinfo.profile';
var CLIENTID = googleAPI;
var REDIRECT = redirectUrl;
var TYPE = 'token';
var _url = OAUTHURL + 'scope=' + SCOPE + '&client_id=' + CLIENTID + '&redirect_uri=' + REDIRECT + '&response_type=' + TYPE;
var acToken;
var tokenType;
var expiresIn;
var user;
$('#googleLogin').click(function(){
        var win = window.open(_url, "windowname1", 'width=800, height=600');

        var pollTimer = window.setInterval(function () {
            if (win.document.URL.indexOf(REDIRECT) != -1) {
                window.clearInterval(pollTimer);
                var url = win.document.URL;
                acToken = gup(url, 'access_token');
                tokenType = gup(url, 'token_type');
                expiresIn = gup(url, 'expires_in');
                win.close();

                validateToken(acToken);
            }
        }, 100);
});
function validateToken(token) {
        $.ajax({
            url: VALIDURL + token,
            data: null,
            success: function (responseText) {
                getUserInfo();
            },
            dataType: "jsonp"
        });
}
4

2 に答える 2

6

ユーザーがアプリケーションからログアウトするときに、Google アカウントからログアウトしないでください。この動作は予期せず、ユーザーにとって煩わしいものです。

せいぜい、アプリケーションのユーザーを「ログアウト」する方法を理解しようとする必要があります。(実装によっては、アプリがそれを偽造している可能性があるため、引用符で囲みます)。

UI で要素を非表示にすることだけが重要な場合は、変数を設定できます。たとえばsignedIn、ユーザーがログイン/ログアウト ボタンを押したときに変数を設定または設定解除できます。セッション間でこの状態を維持したい場合は、同じ値を保存する Cookie を使用してください。

キーボードの反対側にいる人が本当にサインインしているユーザーであることを確認したい場合は、呼び出しでmax_auth_ageパラメーターを使用できます。authorizeに設定すると0、アプリが有効なトークンを取得する前に、ユーザーは Google で再認証する必要があります。これを自動セッション有効期限 (銀行や健康の Web サイトで見られるようなもの) と組み合わせると、現在のユーザーの身元を比較的確信できます。

于 2013-02-06T17:59:14.443 に答える