全栈NestJS应用中的OAuth2流 [英] OAuth2 flow in full-stack NestJS application
本文介绍了全栈NestJS应用中的OAuth2流的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
另一个其他地方未完全涉及的OAuth2问题。
我使用NestJS后端、Reaction前端、Passport和我自己的数据库进行身份验证。正在尝试添加一个 OAuth2身份提供程序(Google)。
我将NestJS应用程序配置为OAuth客户端。登录后,我收到回调,此时我有一个access_token
和从id_token
的有效负载中提取的请求的用户详细信息。这被封装在一个扩展PassportStrategy(Strategy, 'google')
和一个AuthGuard('google')
的类中,并且大部分都是自动处理的。代码here。
- 是否可以使用IdP提供的令牌(例如
id_token
或access_token
)?这样我就不用担心自己发代币了。即前端(后端或IdP直接接收令牌),每次请求发送,后端每一次请求(verifyIdToken
或google-auth-library
的getTokenInfo
)与IdP验证。
- 所以,或者,我可以自己发出JWT,而不用担心向IDP签到吗?一旦JWT到期,我需要提示用户再次登录。在这种情况下,我不需要存储IdP令牌。但这是不是很好的做法呢?我能想到的一个问题是,我不会检测到用户是否撤销了IdP中的访问权限(直到JWT过期)。
推荐答案
我最终发布了自己的jwt令牌并在我的应用程序中管理用户会话,如本文所述:OAuth2 in NestJS for Social Login (Google, Facebook, Twitter, etc)
这篇关于全栈NestJS应用中的OAuth2流的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文