为什么请求者在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
所以我的解决方案是在登录后的路由中设置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
所以我的解决方案是在登录后的路由中设置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,如果是,则继续。正确吗?它足够安全吗?