process.env
- это способ доступа к переменным среды, в которых выполняется скрипт.
Это позволяет вам вводить различные переменные в ваш код в зависимости от того, где он запускается.Переменные среды могут быть либо экспортированы туда, где выполняется код (например, export newEnv = NewEnvVar
), либо существовать в файле .env
.
Просмотр комментариев для каждой строки:
const serverSessionSecret = () => {
if (!process.env.SERVER_SESSION_SECRET ||
// Send warning if SERVER_SESSION_SECRET does NOT exit? Or...
process.env.SERVER_SESSION_SECRET.length < 8 ||
// Send warning if it less than 8 characters. Or...
process.env.SERVER_SESSION_SECRET === warnings.exampleBadSecret
// Send warning if the secret matches a predefined bad example
) {
// Warning if user doesn't have a good secret
console.log(warnings.badSecret);
}
/* If none of the above conditions are met,
* a console.log warning message does not get sent.
*/
return process.env.SERVER_SESSION_SECRET;
// This returns the Secret or Undefined if it does not exist.
};
Тогда в ваших экспортах:
module.exports = cookieSession({
secret: serverSessionSecret() || 'secret', // please set this in your .env file
// secret will equal your 'process.env.SERVER_SESSION_SECRET' environment
// variable, but if it is not defined, it will equal 'secret'
key: 'user', // this is the name of the req.variable. 'user' is convention, but not required
resave: 'false',
saveUninitialized: false,
cookie: { maxage: 60000, secure: false },
});
Подводя итог, serverSessionSecret()
возвращает только строку в этом случае.Либо secret
, либо то, что установлено в переменных среды.
Похоже, вы используете эту библиотеку: https://www.npmjs.com/package/cookie-session
В этом случае, когда вы настраиваете сеанс cookie с помощьюsecret
, их документация показывает:
secret
Строка, которая будет использоваться как один ключ, если ключи не предоставлены.
keys
Список ключей, используемых для подписи и проверки значений файлов cookie.Установленные куки всегда подписываются ключами [0], в то время как другие ключи действительны для проверки, что позволяет вращать ключи.
В вашем случае process.env.SERVER_SESSION_SECRET
или secret
используется для подписи& verfiy the cookie.