我无法理解Google +的身份验证和授权标准流程,而无需使用 Passport
要求:
当前架构:
问题:
i)如何用Google +替换当前的身份验证?
ii)当我使用Google +按钮登录时,我在客户端获得了一个访问令牌,我是否将令牌发送回我的服务器?
iii)但是,我的服务器没有此用户的信息?,我是否需要先在我的服务器中创建此用户,当它向我的服务器发送访问令牌时,我将检查该用户是否有效并将其返回用我的服务器访问令牌? (对于这个用户,我的服务器数据库上没有密码信息?,谷歌的这个访问令牌会存储在我的服务器上吗?)
iv)我读到了他们的文档https://developers.google.com/+/web/signin/server-side-flow 他们正在使用会话,当用户第一次访问该页面时,我不想使用sessiosn
我想知道一般流程,我自己可以实现的代码, 我只想知道解决这个问题的通用架构!
如果你能告诉我处理这个问题的一般概念,那就太棒了! :)
答案 0 :(得分:2)
这是实施Google+登录的最佳推荐方式
Google Hybrid server side signin procedure
总结一下,有2部分;
1)要从Google检索身份验证令牌,您可以使用其可用的SDK
2)从Google获得身份验证令牌后,再次将其从您的客户端发送回您的服务器
3)在您的服务器中,从Google交换身份验证令牌以获取其访问令牌,以便您代表用户使用Google API。您可以检索用户信息,发布Google+信息
4)生成您自己的服务器访问令牌并将其发送回客户端
5)在您的客户端中,保存服务器生成的访问令牌以用于服务器的CRUD