我正在使用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客户端代码)似乎很不幸。