gpt4 book ai didi

javascript - PassportJS - 动态设置状态以允许在回调时重定向

转载 作者:数据小太阳 更新时间:2023-10-29 06:11:24 29 4
gpt4 key购买 nike

所以我正在处理提供的信息 here添加 Google 将重定向到用户在重定向到 google 之前所在页面的功能。我目前使用的是最新版本的 Express、PassportJS 和 Google oauth2。

例如,如果用户点击页面 http://example.com/privatecontent ,它会自动重定向到要求登录的 Google,并在成功后返回到我的 Node 应用程序,除了它不知道最后一页是/privatecontent 而是重定向到索引。

如果我理解正确,我可以使用 state 参数让 Google 知道将 state 参数发回,这样我就可以读取它并重定向自己。

我基本上希望我的函数看起来像这样,但我无权访问 req.headers,或者只是不知道 passport.authenticate 中的真实程度。

app.get("/auth/google", passport.authenticate("google", {
scope: ["https://www.googleapis.com/auth/userinfo.profile", "https://www.googleapis.com/auth/userinfo.email"],
state: base64url(JSON.stringify({
lastUrl: req.headers['referer']
}))
}), function(req, res) {});

最佳答案

制作自定义中间件

function myCustomGoogleAuthenticator(req, res, next){
passport.authenticate({
scope: ...
state: // now you have `req`
})(req, res, next);
//^ call the middleware returned by passport.authenticate
}

改为将其添加到您的路线

app.get("/auth/google", myCustomGoogleAuthenticator, function(req, res) {});

关于javascript - PassportJS - 动态设置状态以允许在回调时重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27308279/

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