gpt4 book ai didi

passport.js - 如何在环回中获取使用 Passport 生成的访问 token

转载 作者:行者123 更新时间:2023-12-02 01:20:29 27 4
gpt4 key购买 nike

我正在将 passport 与 loopback 集成,并且工作正常,问题是如何获取访问 token 。

我有一个 web 应用程序(服务于与环回不同的服务器)所以:

  1. 发出请求(在环回后端)
  2. 这会将我重定向到 Facebook,批准它
  3. 返回环回(做通行证工作)
  4. 现在,如何获取在我的网络应用程序中生成的 accessToken?

我可以重定向(如果登录成功)到我的网络应用程序,但我在进行中丢失了 accessToken。

有什么想法吗?

我提出要求

解决方案:

访问 token 由 cookie 中的环回设置,因此当重定向回 Web 应用程序时,可以通过以下方式访问:

 document.cookie

如果你想传递一个变量:

var access_token = document.cookie.replace(/(?:(?:^|.*;\s*)access_token\s*\=\s*([^;]*).*$)|^.*$/, "$1")
var userId = document.cookie.replace(/(?:(?:^|.*;\s*)userId\s*\=\s*([^;]*).*$)|^.*$/, "$1")

但是

如果后端和前端使用不同的 URL,则不能所以我建议使用这篇文章的解决方案

最佳答案

我希望,我明白了。这是我使用 Passport/Facebook 策略遵循的流程。
1)客户端(网络应用程序):window.location = http://urlServerName:port/passport/facebook这也可以是服务器端的重定向。
2) 用户在 facebook 上输入凭据。
3) Facebook 重定向到回调。

router.get('/passport/facebook', passport.authenticate('facebook'));
router.get('/passport/facebook/callback', passport.authenticate('facebook', { failureRedirect: '/login' }),
(req, res) => {

let url = req.url; // url contains the code
let urs = req.usr; // user info.
// You can set a cookie with the info you want. This can be the auth code, the user profile or a JWT generated in the same request.
res.cookie("data",usr,{httpOnly:true});
res.redirect('urlWebApplication');
});

4) 在您的回调中,您可以使用您想要的信息设置一个 cookie。这样就可以在您的 webapp 中访问它。
希望这有助于澄清。

关于passport.js - 如何在环回中获取使用 Passport 生成的访问 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40538664/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com