最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

为什么请求者在Sapper App中未定义

IT培训 admin 13浏览 0评论

为什么请求者在Sapper App中未定义

我无法在Sapper应用中设置req.user,我在做什么错了

express()
    .use(
        bodyParser.urlencoded({
            extended: true
        }),
        bodyParser.json(),
        compression({
            threshold: 0
        }),
        sirv('static', {
            dev
        }),
        cookieParser(),
        session({
            store: store,
            secret: 'somesecret',
            resave: false,
            saveUninitialized: true,
            cookie: {
                secure: true,
                maxAge: 604800000,
            }
        }),
        passport.initialize(),
        passport.session(),
        sapper.middleware({
            session: (req, res) => {
                let user = req.session.user
                return {
                    user
                }
            }
        }),


    )

我有一个登录组件,即时通讯使用提取功能

在登录文件夹中,我在服务器端路由中有一个login.js文件,但我无法获得req.user而不是req.session.user,而不是req.session.passport

回答如下:我找到了部分解决方案,如果我错了,请更正此错误。因此,整个应用程序都受sapper.middleware和服务器控制,它本身对它没有自动作用。因此,没有设置req.user,没有设置会话,也没有设置cookie值,因此必须从身份验证路由手动设置所有内容。

所以我的解决方案是在登录后的路由中设置cookie,因此在login.js文件中设置cookie。

import passport from 'passport' export async function post(req, res, next) { passport.authenticate('local', (err, user, info) => { if (err) { return res.json(err) } if (user) { // console.log(req) return res.status(201).cookie('user', req.sessionID).json({ email: user.email, id: user._id }) } if (info) { return res.json(info) } })(req, res, next); }

在login.svelte组件中,我设置了我的会话(SAPPER MIDDLEWARE SESSION)

session.set({ user: true, email: user_data.email, id: user_data.id });

因此,我的进一步操作是,如果没有将设置为null的用户设置为null并重定向到登录,请继续检查服务器上的会话存储中是否存在sessionid,如果是,则继续。

正确吗?它足够安全吗?

为什么请求者在Sapper App中未定义

我无法在Sapper应用中设置req.user,我在做什么错了

express()
    .use(
        bodyParser.urlencoded({
            extended: true
        }),
        bodyParser.json(),
        compression({
            threshold: 0
        }),
        sirv('static', {
            dev
        }),
        cookieParser(),
        session({
            store: store,
            secret: 'somesecret',
            resave: false,
            saveUninitialized: true,
            cookie: {
                secure: true,
                maxAge: 604800000,
            }
        }),
        passport.initialize(),
        passport.session(),
        sapper.middleware({
            session: (req, res) => {
                let user = req.session.user
                return {
                    user
                }
            }
        }),


    )

我有一个登录组件,即时通讯使用提取功能

在登录文件夹中,我在服务器端路由中有一个login.js文件,但我无法获得req.user而不是req.session.user,而不是req.session.passport

回答如下:我找到了部分解决方案,如果我错了,请更正此错误。因此,整个应用程序都受sapper.middleware和服务器控制,它本身对它没有自动作用。因此,没有设置req.user,没有设置会话,也没有设置cookie值,因此必须从身份验证路由手动设置所有内容。

所以我的解决方案是在登录后的路由中设置cookie,因此在login.js文件中设置cookie。

import passport from 'passport' export async function post(req, res, next) { passport.authenticate('local', (err, user, info) => { if (err) { return res.json(err) } if (user) { // console.log(req) return res.status(201).cookie('user', req.sessionID).json({ email: user.email, id: user._id }) } if (info) { return res.json(info) } })(req, res, next); }

在login.svelte组件中,我设置了我的会话(SAPPER MIDDLEWARE SESSION)

session.set({ user: true, email: user_data.email, id: user_data.id });

因此,我的进一步操作是,如果没有将设置为null的用户设置为null并重定向到登录,请继续检查服务器上的会话存储中是否存在sessionid,如果是,则继续。

正确吗?它足够安全吗?

发布评论

评论列表 (0)

  1. 暂无评论