passport-qq2015-fix

2.0.1 • Public • Published

Fork form passport-qq2015

passport-qq2015-fix

QQ第三方授权登录,使用与web网站,可在express和koa等框架中使用。 代码用到了Object.assign(),需要在 es6 的环境中使用。

Install

$ npm install passport-qq2015-fix

项目文件结构

整个项目采用MVC架构,基本项目结构如下图

passport-qq2015-fix/             项目根目录
├── lib/                     核心代码           
├── package.json  npm的声明文件,包含项目的依赖等
└── README.md 包含对此此项目的一些介绍,就是当前说看到的内容

Usage

配置strategy

 
  passport.use('qq-token', new qqStrategy({
    clientID: config.qq.appID,
    clientSecret: config.qq.appKEY,
    callbackURL: 'http://www.xxxx.com/auth/token/qq/callback'
    passReqToCallback: true //不需要的话可以设置成 false
  },
    function (req,accessToken, refreshToken, profile, done) {
      //function (accessToken, refreshToken, profile, done) 如果你设置为false后请使用这个方法
      if (!profile) {
        return done(null, false);
      }else{
          profile = JSON.parse(profile); //解析profile
          if(profile.ret = -1){
              return done(null, false); //api给你返回了错误,捕获
          }
          return done(null, profile);
      }
  ));

授权请求

包含两个api接口。第一个请求负责跳转到授权页面,第二个请求是qq授权的回调地址,根据获得的code,依次获得accessToKen, openId, userInfo,并最终跳转到指定的地址。

example如下:

 
  router.get('/token/qq', passport.authenticate('qq-token', {
    session: false
  }));
 
  router.get('/token/qq/callback',
    passport.authenticate('qq-token', {
      session: false,
      failureRedirect: 'http://www.fail.com'
    }),
    function *() {
      const res = this.response;
      res.redirect('http://success.com');
    });

Readme

Keywords

Package Sidebar

Install

npm i passport-qq2015-fix

Weekly Downloads

1

Version

2.0.1

License

none

Last publish

Collaborators

  • a632079