【问题标题】:NestJS Passport Linkedin StrategyNestJS Passport Linkedin 策略
【发布时间】:2020-03-24 00:45:14
【问题描述】:
我有一个定义了 JwtStrategy 的 NestJS 应用程序。现在我想要的是包含一个 LinkedIn 策略。有人可以向我解释如何实现这一目标吗?目前我使用我的 FE Angular 应用程序来做一些事情,比如重定向和交换 accessToken 的代码。由于存储我的 clientId、secret 和其他东西并没有真正保存我想把它移到我的 api 端(NestJS 应用程序)。
【问题讨论】:
标签:
typescript
passport.js
nestjs
【解决方案1】:
我讨厌链接到文章或代码,因为这是一个很好的问题,所以我将在答案的底部提供资源。在大多数情况下,这可以像你做 JWTStrategy 一样实现,你会找到一个你想要使用的护照策略(例如 LinkedIn OAuth),你编写你的 LinkedIn 策略,确定确定用户是否已经存在于您的系统中(电子邮件通常是一个很好的),并与他们一起保存他们的 LinkedIn 令牌。从那里,您将创建一个自定义守卫来检查 req.isAuthenticated() 并返回它们是否存在。您可能还需要一个序列化类来处理护照 OAuth 响应的序列化和反序列化。最后,如果您使用 OAuth,您可能会处理会话,因此您可能需要 express-session 包,并且您可能需要添加 Redis 以保留会话令牌。
Article written by John about MVC Sessions
Sample code for Passport with OAuth