【发布时间】:2021-12-29 23:19:21
【问题描述】:
我目前正在构建一个 REST API,用户可以在其中通过不同的护照策略(google、facebook)对自己进行身份验证。身份验证必须在没有会话的情况下完成。
现在我已经制定了本地策略,并且效果类似;
应用程序POST /login 到 API,然后当用户输入正确的凭据时,他们会像这样得到一些有效负载
[
{
"tokenType": "refresh",
"expiresIn": 604800000,
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MTUsImlhdCI6MTY0MDc4NzA4MCwiZXhwIjoxNjQxMzkxODgwfQ.zdxdpX8NkiSTsbZj0xOd18RdbLjeSsQpkikLGW71xrE"
},
{
"tokenType": "access",
"expiresIn": 7200000,
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MTUsImlhdCI6MTY0MDc4NzA4MCwiZXhwIjoxNjQwNzk0MjgwfQ.EBDuJqQYT-D0bnYbC76_khe6b29c80R4pMyEaBNKLKE"
}
]
但是,google 和 facebook 策略的问题在于它们通过 OAuth 工作。在 OAuth 身份验证成功后,我正在努力寻找一种方法将上述信息(如我的本地策略)发送给客户端。
这些 OAuth 服务使用 /auth/facebook/return 之类的返回 URL。但是这个返回 URL 在 API 上,它不能将信息发送到客户端(或者可以吗?)。
我该怎么做?
【问题讨论】:
标签: node.js rest oauth passport.js passport-facebook