如何在环回中获取使用护照生成的访问令牌
How to get accessToken generated whit passport in loopback
我正在将 passport 与 loopback 集成,并且工作正常,问题是如何获取访问令牌。
我有一个 Web 应用程序(服务于与环回不同的服务器)所以:
- 发出请求(在环回后端)
- 这会将我重定向到 Facebook,批准它
- Return 环回(做通行证工作)
- 现在,我如何获得在我的网络应用程序中生成的 accessToken?
我可以重定向(如果登录成功)到我的网络应用程序,但我在进行中丢失了 accessToken。
有什么想法吗?
我提出请求
解决方案:
访问令牌由 cookie 中的环回设置,因此当重定向回 Web 应用程序时,可以通过以下方式访问:
document.cookie
如果你想传递一个变量:
var access_token = document.cookie.replace(/(?:(?:^|.*;\s*)access_token\s*\=\s*([^;]*).*$)|^.*$/, "")
var userId = document.cookie.replace(/(?:(?:^|.*;\s*)userId\s*\=\s*([^;]*).*$)|^.*$/, "")
但是
如果后端和前端使用不同的 URL,则不能
所以我建议使用这个 post
的解决方案
我希望,我明白了。这是我遵循 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。这样就可以在您的网络应用程序中访问它。
希望这有助于澄清。
我正在将 passport 与 loopback 集成,并且工作正常,问题是如何获取访问令牌。
我有一个 Web 应用程序(服务于与环回不同的服务器)所以:
- 发出请求(在环回后端)
- 这会将我重定向到 Facebook,批准它
- Return 环回(做通行证工作)
- 现在,我如何获得在我的网络应用程序中生成的 accessToken?
我可以重定向(如果登录成功)到我的网络应用程序,但我在进行中丢失了 accessToken。
有什么想法吗?
我提出请求
解决方案:
访问令牌由 cookie 中的环回设置,因此当重定向回 Web 应用程序时,可以通过以下方式访问:
document.cookie
如果你想传递一个变量:
var access_token = document.cookie.replace(/(?:(?:^|.*;\s*)access_token\s*\=\s*([^;]*).*$)|^.*$/, "")
var userId = document.cookie.replace(/(?:(?:^|.*;\s*)userId\s*\=\s*([^;]*).*$)|^.*$/, "")
但是
如果后端和前端使用不同的 URL,则不能 所以我建议使用这个 post
的解决方案我希望,我明白了。这是我遵循 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。这样就可以在您的网络应用程序中访问它。
希望这有助于澄清。