Can Endpoints JS Client可以使用GAE用户Api授权(js / python)

时间:2016-05-27 16:10:43

标签: javascript google-app-engine authentication google-cloud-endpoints

我正在使用GAE的python版本。对于大多数页面,我使用google.appengine.api.users

对用户服务器端进行身份验证
 user = users.get_current_user()
 if user:
     # Great user logged in proceed
     ... 
 else:
     # Oops user not logged in and/or App not yet authorized
     # Present user with login dialogue then redirect here

因此用户登录并验证我的应用。稍后用户会遇到一个页面,其中包含一些使用google端点的java脚本功能。用户仍然登录页面,但似乎我被迫在端点api服务器端识别用户之前提出另一个登录对话

相关JS代码:

iaw.signin = function(mode, callback) {

    // Hoping setting mode to true here (no authorization prompt)
    // magically figures out user already logged into browser and
    // picks up relevant token/headers to feed to endpoints and
    // verifies user authorized and logged in
    // note: callback = iaw.userAuthed
    gapi.auth.authorize({client_id: iaw.CLIENT_ID,
        scope: iaw.SCOPES, immediate: mode},
        callback);
};

iaw.userAuthed = function() {

    var request = gapi.client.oauth2.userinfo.get().execute(function(resp) {
        if (!resp.code) {
            console.log('Succefully logged in');
        }
        else
        {
            console.log('Not successfully logged in');
        }
    });
};

上面的代码版本始终打印“未成功登录”。如果我按照谷歌示例并调用gapi.auth.authorize({immediate:false}),它将向用户显示另一个登录对话框,然后一切正常。

我想做的是什么?在某些情况下,让我的用户登录(授权后端服务器代码)然后立即要求他们再次登录(授权我的javascript客户端代码)似乎很不幸。

0 个答案:

没有答案