mirror of
https://github.com/danny-avila/LibreChat.git
synced 2025-12-16 16:30:15 +01:00
feat: Refresh Token for improved Session Security (#927)
* feat(api): refresh token logic * feat(client): refresh token logic * feat(data-provider): refresh token logic * fix: SSE uses esm * chore: add default refresh token expiry to AuthService, add message about env var not set when generating a token * chore: update scripts to more compatible bun methods, ran bun install again * chore: update env.example and playwright workflow with JWT_REFRESH_SECRET * chore: update breaking changes docs * chore: add timeout to url visit * chore: add default SESSION_EXPIRY in generateToken logic, add act script for testing github actions * fix(e2e): refresh automatically in development environment to pass e2e tests
This commit is contained in:
parent
75be9a3279
commit
33f087d38f
31 changed files with 420 additions and 232 deletions
|
|
@ -1,4 +1,5 @@
|
|||
const User = require('../../../models/User');
|
||||
const { setAuthTokens } = require('../../services/AuthService');
|
||||
|
||||
const loginController = async (req, res) => {
|
||||
try {
|
||||
|
|
@ -10,15 +11,7 @@ const loginController = async (req, res) => {
|
|||
return res.status(400).json({ message: 'Invalid credentials' });
|
||||
}
|
||||
|
||||
const token = req.user.generateToken();
|
||||
const expires = eval(process.env.SESSION_EXPIRY);
|
||||
|
||||
// Add token to cookie
|
||||
res.cookie('token', token, {
|
||||
expires: new Date(Date.now() + expires),
|
||||
httpOnly: false,
|
||||
secure: process.env.NODE_ENV === 'production',
|
||||
});
|
||||
const token = await setAuthTokens(user._id, res);
|
||||
|
||||
return res.status(200).send({ token, user });
|
||||
} catch (err) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue