如何在护照nodejs中进行修理

发布于 2025-02-14 00:41:58 字数 1628 浏览 0 评论 0原文

我想知道如何在

我尝试使用此req.isauthenticated()的nodejs中使用Passport进行插入,但是即使浏览器具有cookie session,并且登录

req.isAuthenticated()

I config passport.ts, 它仍可使用false false 像这样

import { Request } from 'express';
const passport = require('passport');
const LocalStrategy = require('passport-local').Strategy;

module.exports = (userRepository: any) => {

    passport.serializeUser((user: any, done: any) => {
        console.log("serializeUser good");
        done(null, user);
    });
    passport.deserializeUser((user: any, done: any) => {
        console.log("deserializeUser good");
        console.log("deserializeUser user : ", user);
        done(null, user);
    });
    passport.use(new LocalStrategy({
        usernameField: 'id',
        passwordField: 'pw',
        session: true,
        passReqToCallback: false,
    }, async (id: any, pw: any, done: any) => {

        const result = await userRepository.findOne({
            where: {
                userId: id
            }
        });

        if (!result) {
            return done(null, false, { message: 'it dont exist pw or id' });
        }
        return done(null, { userId: result.userId });
    }))
}

,我已经使用了这样的

const passportConfig = require('./passport');
passportConfig(userRepository); // userRepository is entity typeorm 

    app.post('/login', passport.authenticate('local', {
        failureRedirect: 'http://localhost:3001/Login'
    }), (req, res) => {
        res.redirect('http://localhost:3001/');
    })

护照 利巴里?

What i wonder is how to athorization by passport in nodejs

i've tried to use this req.isAuthenticated(), but it alway works false even if browser has cookie session, and logined

req.isAuthenticated()

I config passport.ts like this

import { Request } from 'express';
const passport = require('passport');
const LocalStrategy = require('passport-local').Strategy;

module.exports = (userRepository: any) => {

    passport.serializeUser((user: any, done: any) => {
        console.log("serializeUser good");
        done(null, user);
    });
    passport.deserializeUser((user: any, done: any) => {
        console.log("deserializeUser good");
        console.log("deserializeUser user : ", user);
        done(null, user);
    });
    passport.use(new LocalStrategy({
        usernameField: 'id',
        passwordField: 'pw',
        session: true,
        passReqToCallback: false,
    }, async (id: any, pw: any, done: any) => {

        const result = await userRepository.findOne({
            where: {
                userId: id
            }
        });

        if (!result) {
            return done(null, false, { message: 'it dont exist pw or id' });
        }
        return done(null, { userId: result.userId });
    }))
}

and then, i've used passport.ts like this

const passportConfig = require('./passport');
passportConfig(userRepository); // userRepository is entity typeorm 

    app.post('/login', passport.authenticate('local', {
        failureRedirect: 'http://localhost:3001/Login'
    }), (req, res) => {
        res.redirect('http://localhost:3001/');
    })

as i said, the problem is req.isAuthenticated(), but it alway works false

how can i use to athorization by passport libary?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文