首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >passport-local如何处理简单的json-file而不是数据库?

passport-local如何处理简单的json-file而不是数据库?
EN

Stack Overflow用户
提问于 2015-12-03 16:59:02
回答 1查看 101关注 0票数 0

需要一些关于passport.serializeUser()passport.deserializeUser()的解释,当不使用任何local-strategy数据库并将信息存储在简单的json file中时。

passport如何确定id以及如何在deserializeUser()中检索

代码语言:javascript
复制
passport.use(
        'local-signup',
        new LocalStrategy(
        {
                usernameField: 'email',
                passwordField: 'password',
                passReqToCallback: true
            },
            function(request, email, password, done) {
                process.nextTick(
                    function() {
                        if(user.doesUserExist(email)) {
                            return done(
                                null,
                                false, 
                                request.flash('signupMessage', 'That email is already taken.')
                            );
                        }
                        else {
                          var newUser = user.createNewUser(email, password);
                            return done(null, {email: newUser.username, password: newUser.password});
                        }
                    }
                );
            }
        )
    );



// Used to serialize the user for the session
passport.serializeUser(
    function serializeUserCB(user, done) {
        done(null, user);
    }
);

// Used to deserialize the user
passport.deserializeUser(
    function deserializeUserCB(id, done) {
        done(null, id);
    }
);
EN

回答 1

Stack Overflow用户

发布于 2015-12-06 15:45:31

Passport在会话中维护身份验证状态,因此您需要定义两个函数passport.serializeUserpassport.deSerializeUser来序列化/反序列化会话中的用户实例。

每个后续请求将不包含凭据,而是标识会话的唯一cookie,以便支持登录会话。

为了序列化和反序列化,它使用来自

代码语言:javascript
复制
app.use(session({
    secret: 'ThIsIsAsEcREtKEy',
    resave: true,
    saveUninitialized: true
}));

只需使用serializeUser和deserializeUser作为

代码语言:javascript
复制
passport.serializeUser(function (user, done) {
    done(null, user);
});
passport.deserializeUser(function (id, done) {
    done(null, id);
});

用于本地Json文件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34061608

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档