node package manager
Loosely couple your services. Use Orgs to version and reuse your code. Create a free org »

passport-wechat-niu

passport-wechat Build Status

passport wechat

Getting Started

Install the module with: npm install passport-wechat

var WechatStrategy = require('passport-wechat');

Install with cli command

$ npm install -g passport-wechat --save

Documentation

(Coming soon)

Examples

'use strict';
 
var express = require('express');
var session = require('express-session');
var passport = require('passport');
var WechatStrategy = require('../lib/strategy');
 
 
passport.serializeUser(function (user, done) {
    done(null, user);
});
 
passport.deserializeUser(function (obj, done) {
    done(null, obj);
});
 
// 相关配置为测试账号信息
passport.use(new WechatStrategy({
    appid: 'wx0ff7006738630a6c',
    appsecret: '866796103d71f653d69809cf1e8c2dae',
    callbackURL: 'http://192.168.1.70:3000/auth/wechat/callback',
    scope: 'snsapi_base',
    state: true
    // appid: 'wx3af1ba5b6113419d',
    // appsecret: '74c7bf3702ff7d2cbc554ce19248a4b7',
    // callbackURL: 'http://api.liangyali.com:3000/auth/wechat/callback'
}, function (openid, profile, token, done) {
    return done(null, openid, profile);
}));
 
var app = express();
app.use(session({secret: 'test'}));
app.use(passport.initialize());
app.use(passport.session());
 
app.get('/auth/err', function (req, res) {
    res.send({message: 'error'});
});
 
app.get('/auth/success', function (req, res) {
    res.send({message: 'success'});
});
 
app.get('/', function (req, res) {
    res.json({status: 'ok'});
});
 
app.get('/auth/wechat', passport.authenticate('wechat'), function (req, res) {
    //dont't call it
});
 
app.get('/auth/wechat/callback', passport.authenticate('wechat', {
        failureRedirect: '/auth/err',
        successRedirect: '/auth/success'}));
 
app.get('/logout', function (req, res) {
    req.logout();
    res.redirect('/');
});
 
 
function ensureAuthenticated(req, res, next) {
    if (res.isAuthencicated()) {
        return next();
    }
 
    res.redirect('/login');
}
 
app.listen(3000, function () {
    console.log('started listen');
});
 
 

Contributing

In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using Grunt.

License

Copyright (c) 2014 liangyali
Licensed under the MIT license.