mirror of
https://github.com/vale981/Vulcan
synced 2025-03-08 19:11:38 -05:00
28 lines
No EOL
1 KiB
JavaScript
28 lines
No EOL
1 KiB
JavaScript
const crypto = Npm.require('crypto');
|
|
|
|
export const _hashLoginToken = (loginToken) => {
|
|
var hash = crypto.createHash('sha256');
|
|
hash.update(loginToken);
|
|
return hash.digest('base64');
|
|
};
|
|
|
|
export const _tokenExpiration = (when) => {
|
|
// We pass when through the Date constructor for backwards compatibility;
|
|
// `when` used to be a number.
|
|
return new Date((new Date(when)).getTime() + _getTokenLifetimeMs());
|
|
}
|
|
|
|
// A large number of expiration days (approximately 100 years worth) that is
|
|
// used when creating unexpiring tokens.
|
|
const LOGIN_UNEXPIRING_TOKEN_DAYS = 365 * 100;
|
|
|
|
// how long (in days) until a login token expires
|
|
const DEFAULT_LOGIN_EXPIRATION_DAYS = 90;
|
|
|
|
export const _getTokenLifetimeMs = () => {
|
|
// When loginExpirationInDays is set to null, we'll use a really high
|
|
// number of days (LOGIN_UNEXPIRABLE_TOKEN_DAYS) to simulate an
|
|
// unexpiring token.
|
|
const loginExpirationInDays = LOGIN_UNEXPIRING_TOKEN_DAYS;
|
|
return (loginExpirationInDays|| DEFAULT_LOGIN_EXPIRATION_DAYS) * 24 * 60 * 60 * 1000;
|
|
} |