|
|
@ -2,6 +2,7 @@ import * as jwt from 'jsonwebtoken'; |
|
|
|
import crypto from 'crypto'; |
|
|
|
import crypto from 'crypto'; |
|
|
|
import User from '../../models/User'; |
|
|
|
import User from '../../models/User'; |
|
|
|
import { NcConfig } from '../../../interface/config'; |
|
|
|
import { NcConfig } from '../../../interface/config'; |
|
|
|
|
|
|
|
import { Response } from 'express'; |
|
|
|
|
|
|
|
|
|
|
|
export function genJwt(user: User, config: NcConfig) { |
|
|
|
export function genJwt(user: User, config: NcConfig) { |
|
|
|
return jwt.sign( |
|
|
|
return jwt.sign( |
|
|
@ -21,3 +22,12 @@ export function genJwt(user: User, config: NcConfig) { |
|
|
|
export function randomTokenString(): string { |
|
|
|
export function randomTokenString(): string { |
|
|
|
return crypto.randomBytes(40).toString('hex'); |
|
|
|
return crypto.randomBytes(40).toString('hex'); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
export function setTokenCookie(res: Response, token): void { |
|
|
|
|
|
|
|
// create http only cookie with refresh token that expires in 7 days
|
|
|
|
|
|
|
|
const cookieOptions = { |
|
|
|
|
|
|
|
httpOnly: true, |
|
|
|
|
|
|
|
expires: new Date(Date.now() + 7 * 24 * 60 * 60 * 1000), |
|
|
|
|
|
|
|
}; |
|
|
|
|
|
|
|
res.cookie('refresh_token', token, cookieOptions); |
|
|
|
|
|
|
|
} |
|
|
|