1

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

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

我认为是

我不能在一个项目中使用两种不同的方法。如果我将 jwt 用于注册表单,将 cookie 用于谷歌策略,那么我将如何保护我的路线?在标头中使用令牌或在浏览器中使用 cookie

现在我的问题是

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

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

我非常简要地介绍了一些东西,我希望你能明白我在这里想要做的事情


4

2 回答 2

0

在您需要使用预定义字段注册用户的情况下,您可以使用通行证中存在的称为本地策略的东西。本地护照

于 2020-08-06T19:50:31.030 回答
0

我不能在一个项目中使用两种不同的方法。如果我将 jwt 用于注册表单,将 cookie 用于谷歌策略,那么我将如何保护我的路线?在标头中使用令牌或在浏览器中使用 cookie

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

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

于 2020-08-06T19:56:43.940 回答