【问题标题】:ExpressJS and passport-linkedin-oauth2 cannot authenticateExpressJS 和 passport-linkedin-oauth2 无法进行身份验证
【发布时间】:2015-03-11 10:53:03
【问题描述】:

我试图做一个使用passport-linkedin-oauth2的简单例子然后遇到了这个问题:

这是服务器端的日志:

{ [CastError: Cast to number failed for value "XXXXXX" at path "oauthID"]
message: 'Cast to number failed for value "XXXXXX" at path "oauthID"',
name: 'CastError',
type: 'number',
value: 'XXXXXX',
path: 'oauthID' }

这是客户端的错误日志:

TokenError: missing required parameters, includes an invalid parameter value, parameter more than once. : Unable to retrieve access token : appId or redirect uri does not match authorization code or authorization code expired
at Strategy.OAuth2Strategy.parseErrorResponse (/Users/percevio/projects/web-learning/passportjs/open-auth/node_modules/passport-linkedin-oauth2/node_modules/passport-oauth2/lib/strategy.js:298:12)
at Strategy.OAuth2Strategy._createOAuthError (/Users/percevio/projects/web-learning/passportjs/open-auth/node_modules/passport-linkedin-oauth2/node_modules/passport-oauth2/lib/strategy.js:345:16)
at /Users/percevio/projects/web-learning/passportjs/open-auth/node_modules/passport-linkedin-oauth2/node_modules/passport-oauth2/lib/strategy.js:171:43
at /Users/percevio/projects/web-learning/passportjs/open-auth/node_modules/passport-linkedin-oauth2/node_modules/passport-oauth2/node_modules/oauth/lib/oauth2.js:177:18
at passBackControl (/Users/percevio/projects/web-learning/passportjs/open-auth/node_modules/passport-linkedin-oauth2/node_modules/passport-oauth2/node_modules/oauth/lib/oauth2.js:124:9)
at IncomingMessage.<anonymous> (/Users/percevio/projects/web-learning/passportjs/open-auth/node_modules/passport-linkedin-oauth2/node_modules/passport-oauth2/node_modules/oauth/lib/oauth2.js:143:7)
at IncomingMessage.emit (events.js:117:20)
at _stream_readable.js:944:16
at process._tickCallback (node.js:442:13)

我正在使用 ExpressJS、mongoose 并已注册 Linkedin 应用程序以获取 API 密钥和密钥。而且我已经检查了 OAuth 2.0 重定向 URL。

用户架构:

//Create a user model
var User = mongoose.model('User',{
    oauthID:Number,
    name:String,
    created:Date
});

这就是我配置linkedStrategy的方式:

passport.use(new LinkedInStrategy({
    clientID:config.linkedin_oauth2.clientID,
    clientSecret:config.linkedin_oauth2.clientSecret,
    callbackURL:'http://localhost:3000/auth/linkedin/callback',
    state:true,
    scope: ['r_basicprofile']
},

有什么建议吗?非常感谢!

【问题讨论】:

    标签: node.js oauth linkedin passport.js


    【解决方案1】:

    不确定您是否找到了答案。我遇到了同样的问题,结果发现从节点 0.10.35 升级到 0.12.2 为我解决了这个问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-24
      • 2022-11-03
      • 2019-04-29
      • 2013-10-30
      • 2020-06-16
      • 1970-01-01
      • 1970-01-01
      • 2019-12-20
      相关资源
      最近更新 更多