我试图用google和第三方应用程序实现sso 想法是用户将登录谷歌,一旦他将请求第三方应用程序页面SSO处理程序应该发生。
从SSO处理程序我应该能够检索登录的谷歌用户,只需要电子邮件地址
实现这样一个解决方案的最佳方法是什么,我用python + oauth思考
我应该能够收到带有请求标题的用户电子邮件
所以流程是:
1.用户验证vs谷歌
2.用户通过尝试访问第三方应用程序来调用SSO处理程序
3. SSO Handler获取当前谷歌登录用户 - >我如何预先形成这个API调用?
4.检索用户电子邮件后,SSO处理程序将对第三方应用程序进行身份验证。
我无法找到有关它的信息,任何指导方针都会对他有所帮助。谢谢!
编辑: 我尝试使用authomatic,但没有取得多大进展
以下是一些示例代码:
CONFIG = {
'google': {
'class_': 'authomatic.providers.oauth2.Google',
'id': authomatic.provider_id(), # returns 2
'consumer_key': 'XXXXXX',
'consumer_secret': 'XXXXXX',
'scope': ['https://www.googleapis.com/auth/userinfo.profile',
'https://www.googleapis.com/auth/userinfo.email']
}
}
class Login(webapp2.RequestHandler):
def any(self, provider_name):
result = authomatic.login(Webapp2Adapter(self), 'google')
if result:
if result.user:
result.user.update()
self.response.write('<h1>Hi {0}</h1>'.format(result.user.name))
authomatic = Authomatic(config=CONFIG, secret='sadfasdfsgfr')
Login(webapp2.get_request())
我收到以下错误:
AssertionError:未设置请求全局变量。