• Node.js 模块之【passport】


    什么是passport

    passport是Nodejs的一个中间键,用于用户名和密码的验证登陆。在项目中我用它来验证后台用户名和密码,但passport更多用在第三方登录,功能强大。

    安装与配置

    本项目中使用了passport以及passport-local

    npm install passport --save
    npm install passport-local --save

    中间件的配置

    // 初始化调用passport
    app.use(passport.initialize());
    app.use(passport.session());

    local本地验证

    var passport = require('passport');
    var Strategy = require('passport-local').Strategy;
    var account = require('./account');
    
    //创建本地策略
    passport.use('local', new Strategy({
            // 需要验证的字段名称
            username: 'username',
            password: 'password'
        },
        // 回调函数
        function(username, password, cb) {
            //验证不通过
            if(username != account.username) {
                return cb(null, false, {message: '用户名错误'});
            }
            if(password != account.password) {
                return cb(null, false, {message: '密码错误'});
            }
            //验证通过,返回用户信息
            return cb(null, account);
        }
    ));


    序列化与反序列化

    //序列化,用户提交后会把id作为唯一标识储存在session中,同时存储在用户的cookie中
    passport.serializeUser(function(account, cb) {
        console.log('in serializeUser');    
        return cb(null, account.id);
    });
    
    //验证用户是否登录时需要用到这个,session根据id取回用户的登录信息并存储在req.user中
    passport.deserializeUser(function(id, cb) {
        console.log('in deserializeUser');
        if(id == account.id) {
            return cb(null, account);
        } else {
            return cb(err);
        }
    });
     
  • 相关阅读:
    Lua中的closure、泛型for
    Lua多重继承
    (转)C++ new详解
    C++重载操作符学习
    Lua中使用继承来组装新的环境
    DOS:变量嵌套和命令嵌套
    C++中成员的私有性
    ManualResetEvent 类
    在IIS中部署和注册WCF服务
    ArcGIS Server 10 地图缓存新特性
  • 原文地址:https://www.cnblogs.com/wws-bk/p/9999668.html
Copyright © 2020-2023  润新知