| const cookies = require('cookie'); |
| const passport = require('passport'); |
| const { isEnabled } = require('@librechat/api'); |
|
|
| |
| |
| const optionalJwtAuth = (req, res, next) => { |
| const cookieHeader = req.headers.cookie; |
| const tokenProvider = cookieHeader ? cookies.parse(cookieHeader).token_provider : null; |
| const callback = (err, user) => { |
| if (err) { |
| return next(err); |
| } |
| if (user) { |
| req.user = user; |
| } |
| next(); |
| }; |
| if (tokenProvider === 'openid' && isEnabled(process.env.OPENID_REUSE_TOKENS)) { |
| return passport.authenticate('openidJwt', { session: false }, callback)(req, res, next); |
| } |
| passport.authenticate('jwt', { session: false }, callback)(req, res, next); |
| }; |
|
|
| module.exports = optionalJwtAuth; |
|
|