| | 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; |
| |
|