我正在尝试通过用户登录。 SAML单点登录。
我已经实施了SAML Single Sign On并且它有效。
我用于程序化登录的代码是:
apps = gdata.apps.service.AppsService(email=username, domain=domain, password=password)
apps.ProgrammaticLogin()
logging.info("current user %s", users.get_current_user())
//Redirect to a Google mail page.
但即使提供了正确的用户名和密码,users.get_current_user()也会一直返回None。我通过将页面重定向到Google Mail页面进行了交叉检查,并成功重定向。
我已经用谷歌搜索了这个问题几个小时,现在没有什么是正确的。
任何人都可以指导我做错了吗?
答案 0 :(得分:1)
这里有三个不同的事情,我只是想确保明确我的建议答案是有意义的:
对于您的特定情况,我建议检查是否有当前用户登录,如果没有使用GAE用户服务重定向到登录URL。
user = users.get_current_user()
if user:
logging.info("current user %s", user.email())
else:
return redirect(users.create_login_url(request.url))
如果您始终要求用户登录,则最好设置处理程序as login: required
用户将被重定向到SAML SSO页面以登录其Google帐户,以便访问GAE应用。