Passport对于简单的身份认证来说似乎是一个很好的选择,不显眼且易于设置。我正在构建一个使用JWT进行身份验证的MEAN堆栈,因此我想到了Passport JWT。然而,有几件事情让我感到困惑。
1)我是否正确地认为Passport JWT仅用于身份验证请求,而不用于生成有效的jwt?也就是说,它只应该用于验证令牌的存在吗?
2)passport.authorize
和passport.authenticate
之间有什么区别?何时应该使用其中的一个而不是另一个?
3)我有3个路由用于身份认证相关事项:login
、signup
和authenticate
。
login
将检查用户电子邮件/密码组合是否存在并匹配,然后为客户端生成一个令牌。
signup
将检查电子邮件是否已存在,然后为客户端生成一个令牌。
现在,对于authenticate
,这就是我感到有些混淆的地方。如果我已经有了login
和signup
,那我还需要一个authenticate
路由吗?如果有的话,似乎authenticate将是我传递给JWT策略的passport.use
函数,然后login
和signup
与可能会增加的verify_token
路由将是我的唯一未受保护的路由,在这里,其他所有内容都将调用passport.authenticate
或passport.authorize
。