没有Passport.js的Google +身份validation

我无法理解Google +的身份validation和授权的标准stream程,而无需使用Passport

需求:

  1. 没有passport.js (我知道这是简单的使用它,但我不想用它)
  2. 没有会议 (不会使用任何会议,我想保持无国籍)

当前架构:

  • 我有一个REST API服务器,JWT(JSON Web令牌),
  • 当用户进行POST /login时,用户将从我的服务器获得访问令牌
  • 我的服务器,将检查用户名和密码,并返回访问令牌
  • 这个令牌是我的服务器中将来的API查询所需要的

题:

我)我怎样才能取代我目前的身份validation与谷歌+?

ii)当我使用Google +buttonlogin时,我在客户端有一个访问令牌,是否将令牌发送回我的服务器?

iii)但是,我的服务器没有这个用户的信息?,我需要先在我的服务器中创build这个用户,当它发送一个访问令牌到我的服务器,我会检查这个用户是否有效,并返回与我的服务器访问令牌? (所以对于这个用户,我的服务器数据库上没有密码信息,这个来自google的访问令牌将被存储在我的服务器中)

四)我读了他们的文档https://developers.google.com/+/web/signin/server-side-flow他们正在使用会话,当用户第一次访问页面,我不想使用sessiosn

我想知道一般stream程,我自己可以实现的代码,我只是想知道通用架构来解决这个问题!

如果你能向我展示处理这个问题的一般概念,那将是非常棒的! 🙂

这是实施Google+login的最值得推荐的方式

Google混合服务器端login程序

总结起来,有2部分,

  1. 从Google获取身份validation令牌
  2. 发送Google身份validation令牌,从您的服务器交换另一个令牌

1)要从Google获取身份validation令牌,可以使用其可用的SDK

2)一旦你从谷歌获得authentication令牌,再次从客户端发回你的服务器

3)在您的服务器上,交换来自Google的身份validation令牌以获取其访问令牌,以便代表用户使用Google API。 您可以检索用户信息,发布Google+信息

4)生成您自己的服务器访问令牌并将其发送回客户端

5)在你的客户端,保存你的服务器生成的访问令牌,用于CRUD从你的服务器