Yunus Tosun
Hectopat
- Katılım
- 11 Haziran 2019
- Mesajlar
- 30
Node.js ile birlikte geliştirmiş olduğum projede user bilgilerini sessiona kaydetmek istiyorum. Kayıt aslında başarılı oluyor ve postmandan session bilgilerini kullanan bir URL'ye istek attığımda her şey normal çalışıyor. Ama ön yüzden istek attığımda req. Session. User undefined olarak dönüyor. Cors ve session ayarlarını da önerilen şekilde yaptım fakat bir türlü çözemedim problemi. Yardımcı olabilirseniz sevinirim.
User bilgilerini req.Session.User'a kaydettiğim Controller fonksiyonum şu şekilde:
User bilgilerini çağırdığım fonksiyon ise şu:
Cors ve session ayarlarımın konfigürasyonunu da şöyle yaptım:
User bilgilerini req.Session.User'a kaydettiğim Controller fonksiyonum şu şekilde:
JavaScript:
exports.loginWithLdap = catchAsync(async (req, res, next) => {
const { username, password } = req.body;
if (!username || !password) {
return next(new AppError('Please provide username and password!', 404));
}
const user = await ldapService.authenticate(username, password);
console.log(user);
if (!user) {
return next(new AppError('Ldap authentication failed!', 401));
}
const otp = await otpService.generateAndSaveOTP(user.mail);
await otpService.sendOTP(user.mail, otp);
req.session.user = user;
res.status(200).json({
status: 'success',
message: 'OTP sent successfully!',
});
});
User bilgilerini çağırdığım fonksiyon ise şu:
JavaScript:
exports.verifyOtp = catchAsync(async (req, res, next) => {
console.log(req.session.user);
const { otp } = req.body;
if (!otp) {
return next(
new AppError('Please provide an OTP code for authentication!', 404)
);
}
console.log('otpServiceUser', req.session.user);
await otpService.verifyOTP(req.session.user.mail, otp);
createSendToken(req.session.user, 200, res);
});
Cors ve session ayarlarımın konfigürasyonunu da şöyle yaptım:
JavaScript:
app.use(
cors({
origin: 'http://localhost:5173',
credentials: true,
methods: ['GET', 'HEAD', 'PUT', 'PATCH', 'POST', 'DELETE'],
})
);
app.use(
session({
secret: 'secret123',
resave: true,
saveUninitialized: true,
cookie: {
httpOnly: true,
secure: false,
sameSite: 'none',
maxAge: 24 * 60 * 60 * 1000,
},
})
);
app.use('/api', userRouter);
Son düzenleyen: Moderatör: