代码之家  ›  专栏  ›  技术社区  ›  Suhail Mumtaz Awan

使用PasPoT-GoGeLoAuth2包节点JS不工作状态PARAM

  •  0
  • Suhail Mumtaz Awan  · 技术社区  · 6 年前

    介绍 我正在使用谷歌的开放式身份验证,让用户使用谷歌身份验证登录。使用 passport-google-oauth2 节点js的包。

    代码工作得很好,除了一件事,我一直在发送状态变量,但得到不同的状态值。首先我想这可能是一些配置问题。从上一天关于Palm的阅读中,我想我可能正在做错误的配置。

    web框架:koa js

    代码Authe

    passport.use(new GoogleStrategy({
        clientID: 'xxxxxxxxxxx.apps.googleusercontent.com',
        clientSecret: 'xxxxxxxxxxxxxxxxxxxxxx',
        callbackURL: 'http://localhost:5000/auth/callback/google',
        passReqToCallback: true,
        response_type:'token',
        scope: "openid profile email",
        state: base64url(JSON.stringify({blah: 'test'})),
        accessType: 'offline'
      },
      function(request, accessToken, refreshToken, profile, done) {
        if(accessToken){
    
            console.log('-------request--------??', request);
                console.log('-------accessToken--------??', accessToken);
                console.log('-------refreshToken--------??', refreshToken);
                console.log('-------profile--------??', profile);
                console.log('-------authenticated-------');
                done(null, user);
            }
            else{
                console.log('-------not authenticated-------');
                done(null, false);
            }
      }
    ));
    

    在重定向中,我得到QualScript中的所有参数,也得到具有不同值的状态变量。

    示例查询字符串

    { 
    state: 'T3Lx3XvvSlsGitbNqlCM8CEB',
    code: '4/AABGuKCh3Sp0kv2eWSbYsUEAT4iXA2k9u7o2X_ICw0wchiIq38MofOuTmx_yGQSXAFn7iAq9meZXUKRh0qVOAv0',
    authuser: '0',
    session_state: 'af3af7767c5501d163fa847225b863a9982d76ef..1c9b',
    prompt: 'none' 
    }
    

    如果有人知道这个问题,请帮忙。谢谢你的时间。

    1 回复  |  直到 6 年前
        1
  •  0
  •   Suhail Mumtaz Awan    6 年前

    我找到了答案,事实上passport js将其自动生成的状态与authenticate调用一起发送到session中。稍后在查询字符串中从谷歌中重定向调用接收。