尝试通过护照linkedin集成linkedin登录时“无法在会话中找到请求令牌”
Posted
技术标签:
【中文标题】尝试通过护照linkedin集成linkedin登录时“无法在会话中找到请求令牌”【英文标题】:Getting "failed to find request token in session" while trying to integrate linkedin login via passport linkedin 【发布时间】:2016-03-06 13:07:42 【问题描述】:我在尝试通过护照linkedin 集成linkedin 登录时遇到以下错误:
错误:未能在会话中找到请求令牌 Strategy.OAuthStrategy.authenticate (C:\jobninja\facebookauth\node_modules\passport-linkedin\node_modules\passport-oauth1\lib\strategy.js:142:54) 在 Strategy.authenticate (C:\jobninja\facebookauth\node_modules\passport-linkedin\lib\strategy.js:118:40) 在尝试 (C:\jobninja\facebookauth\node_modules\passport\lib\middleware\authenticate.js:348:16) 在验证 (C:\jobninja\facebookauth\node_modules\passport\lib\middleware\authenticate.js:349:7) 在 Layer.handle [as handle_request] (C:\jobninja\facebookauth\node_modules\express\lib\router\layer.js:95:5) 接下来 (C:\jobninja\facebookauth\node_modules\express\lib\router\route.js:131:13) 在 Route.dispatch (C:\jobninja\facebookauth\node_modules\express\lib\router\route.js:112:3) 在 Layer.handle [as handle_request] (C:\jobninja\facebookauth\node_modules\express\lib\router\layer.js:95:5) 在 C:\jobninja\facebookauth\node_modules\express\lib\router\index.js:277:22 在 Function.process_params (C:\jobninja\facebookauth\node_modules\express\lib\router\index.js:330:12) 接下来 (C:\jobninja\facebookauth\node_modules\express\lib\router\index.js:271:10) 在 C:\jobninja\facebookauth\node_modules\connect-flash\lib\flash.js:21:5 在 Layer.handle [as handle_request] (C:\jobninja\facebookauth\node_modules\express\lib\router\layer.js:95:5) 在 trim_prefix (C:\jobninja\facebookauth\node_modules\express\lib\router\index.js:312:13) 在 C:\jobninja\facebookauth\node_modules\express\lib\router\index.js:280:7 在 Function.process_params (C:\jobninja\facebookauth\node_modules\express\lib\router\index.js:330:12)。
这是我的代码
passport.use(new LinkedInStrategy(
consumerKey : configAuth.linkedinAuth.clientID,
consumerSecret : configAuth.linkedinAuth.clientSecret,
callbackURL : configAuth.linkedinAuth.callbackURL,
,
function(token, refreshToken, profile, done)
// make the code asynchronous
// User.findOne won't fire until we have all our data back from Linkedin
process.nextTick(function()
// try to find the user based on their linkedin id
User.findOne( 'linkedin.id' : profile.id , function(err, user)
if (err)
return done(err);
if (user)
// if a user is found, log them in
return done(null, user);
else
// if the user isnt in our database, create a new user
var newUser = new User();
// set all of the relevant information
newUser.linkedin.id = profile.id;
newUser.linkedin.token = token;
newUser.linkedin.name = profile.displayName;
newUser.linkedin.email = profile.emails[0].value; // pull the first email
// save the user
newUser.save(function(err)
if (err)
throw err;
return done(null, newUser);
);
);
);
));
谁能找出错误并提供帮助?
【问题讨论】:
【参考方案1】:您的回调 url 是否与启动主机 url 相同?
【讨论】:
感谢您的回复。实际上回调 url 是相同的,这就是代码不起作用的原因。我在这两个地方都有“127.0.0.1:8080/auth/linkedin/callback”作为我的回调网址。我在我的 auth.js 文件中将回调 url 更改为 'localhost:8080/auth/linkedin/callback' 并删除了上述错误。但现在我面临这个错误:newUser.linkedin.email = profile.emails[0].value; // 拉第一封电子邮件类型错误:无法读取未定义的属性 0。任何建议。 请显示更多代码,作为一个新问题会很好,因为这是另一个话题,如果我的回答对你有好处,请接受。以上是关于尝试通过护照linkedin集成linkedin登录时“无法在会话中找到请求令牌”的主要内容,如果未能解决你的问题,请参考以下文章