JWT护照Google策略

时间:2020-08-06 19:44:30

标签: node.js jwt passport-google-oauth2

我在以前的项目中进行过 jwt身份验证,但之前从未使用过 oauth / passport身份验证。 我已经学习了3天的护照策略,并且实施了 google +策略。 我有一个新项目,该项目要求允许用户使用 firstName,lastName,电话号码和密码使用 google或facebook或使用注册表单进行注册/登录。 / p>

  1. 非常简单地在jwt服务器中将令牌发送给客户端,然后客户端将请求标头中的特定令牌发送回服务器以访问受保护的路由。
  2. 在护照Google策略中,cookie会保存在浏览器中,并根据每次请求发送到服务器。

我认为是

我不能在一个项目中使用两种不同的方法..就像如果我将jwt用于注册表单并将cookie用于Google策略,那我将如何保护我的路线呢?标头中带有令牌或浏览器中具有cookie

现在我的问题是

我如何在同一个项目中同时使用两者?

  • 在Google策略中,我应该在serializeUser()还是其他位置为客户端生成jwt(令牌),或者还有可能吗?
  • 还是我应该将jwt令牌保存在像护照这样的浏览器cookie中?

我非常简短地介绍了这些内容,希望您能理解我在这里想要做的事情


2 个答案:

答案 0 :(得分:0)

在需要使用预定义字段注册用户的情况下,可以使用护照中提供的称为“本地策略”的内容。passport-local

答案 1 :(得分:0)

我不能在一个项目中使用两种不同的方法..就像如果我将jwt用于注册表单并将cookie用于Google策略,那我将如何保护我的路线呢?标头中带有令牌或浏览器中具有cookie

可以。 Cookie只是浏览器和服务器之间数据的传输机制。您可以在其中存储任何内容(不超过允许的大小限制),这意味着您可以将JWT存储在cookie中(这是常见的做法,尤其是对于服务器端呈现的单页应用程序)。

您甚至不必开发自定义解决方案,因为护照已经在passport-jwt中提供了此解决方案。