mirror of https://github.com/fantasticit/think.git
server: fix set cookie
This commit is contained in:
parent
c691cbd52b
commit
a3cce12243
|
@ -17,7 +17,6 @@ import {
|
||||||
UseInterceptors,
|
UseInterceptors,
|
||||||
} from '@nestjs/common';
|
} from '@nestjs/common';
|
||||||
import { UserService } from '@services/user.service';
|
import { UserService } from '@services/user.service';
|
||||||
import { wrapResponse } from '@transforms/http-response.transform';
|
|
||||||
import { Response as ExpressResponse } from 'express';
|
import { Response as ExpressResponse } from 'express';
|
||||||
|
|
||||||
@Controller('user')
|
@Controller('user')
|
||||||
|
@ -36,8 +35,8 @@ export class UserController {
|
||||||
@HttpCode(HttpStatus.OK)
|
@HttpCode(HttpStatus.OK)
|
||||||
async login(@Body() user: LoginUserDto, @Res({ passthrough: true }) response: ExpressResponse) {
|
async login(@Body() user: LoginUserDto, @Res({ passthrough: true }) response: ExpressResponse) {
|
||||||
const { user: data, token } = await this.userService.login(user);
|
const { user: data, token } = await this.userService.login(user);
|
||||||
response.cookie('token', token, { httpOnly: true, sameSite: 'none', secure: true });
|
response.cookie('token', token, { httpOnly: true, secure: true, sameSite: 'lax' });
|
||||||
return response.send(wrapResponse({ data: { ...data, token }, statusCode: HttpStatus.OK }));
|
return { ...data, token };
|
||||||
}
|
}
|
||||||
|
|
||||||
@Get('logout')
|
@Get('logout')
|
||||||
|
|
|
@ -30,7 +30,7 @@ export class JwtStrategy extends PassportStrategy(Strategy) {
|
||||||
secretOrKey: jwtConfig.secretkey,
|
secretOrKey: jwtConfig.secretkey,
|
||||||
jwtFromRequest: ExtractJwt.fromExtractors([
|
jwtFromRequest: ExtractJwt.fromExtractors([
|
||||||
(request: RequestType) => {
|
(request: RequestType) => {
|
||||||
const token = request?.cookies['token'];
|
const token = request?.cookies?.token;
|
||||||
return token;
|
return token;
|
||||||
},
|
},
|
||||||
]),
|
]),
|
||||||
|
|
|
@ -236,7 +236,7 @@ importers:
|
||||||
eslint: 8.14.0
|
eslint: 8.14.0
|
||||||
eslint-config-prettier: 8.5.0_eslint@8.14.0
|
eslint-config-prettier: 8.5.0_eslint@8.14.0
|
||||||
eslint-plugin-import: 2.26.0_eslint@8.14.0
|
eslint-plugin-import: 2.26.0_eslint@8.14.0
|
||||||
eslint-plugin-prettier: 4.0.0_74ebb802163a9b4fa8f89d76ed02f62a
|
eslint-plugin-prettier: 4.0.0_740be41c8168d0cc214a306089357ad0
|
||||||
eslint-plugin-react: 7.29.4_eslint@8.14.0
|
eslint-plugin-react: 7.29.4_eslint@8.14.0
|
||||||
eslint-plugin-react-hooks: 4.5.0_eslint@8.14.0
|
eslint-plugin-react-hooks: 4.5.0_eslint@8.14.0
|
||||||
eslint-plugin-simple-import-sort: 7.0.0_eslint@8.14.0
|
eslint-plugin-simple-import-sort: 7.0.0_eslint@8.14.0
|
||||||
|
@ -280,6 +280,7 @@ importers:
|
||||||
'@think/config': workspace:^1.0.0
|
'@think/config': workspace:^1.0.0
|
||||||
'@think/constants': workspace:^1.0.0
|
'@think/constants': workspace:^1.0.0
|
||||||
'@think/domains': workspace:^1.0.0
|
'@think/domains': workspace:^1.0.0
|
||||||
|
'@types/cookie-parser': ^1.4.3
|
||||||
'@types/cron': ^2.0.0
|
'@types/cron': ^2.0.0
|
||||||
'@types/express': ^4.17.13
|
'@types/express': ^4.17.13
|
||||||
'@types/jest': 27.0.2
|
'@types/jest': 27.0.2
|
||||||
|
@ -292,6 +293,7 @@ importers:
|
||||||
class-transformer: ^0.5.1
|
class-transformer: ^0.5.1
|
||||||
class-validator: ^0.13.2
|
class-validator: ^0.13.2
|
||||||
compression: ^1.7.4
|
compression: ^1.7.4
|
||||||
|
cookie-parser: ^1.4.6
|
||||||
date-fns: ^2.28.0
|
date-fns: ^2.28.0
|
||||||
eslint: ^8.14.0
|
eslint: ^8.14.0
|
||||||
eslint-config-prettier: ^8.5.0
|
eslint-config-prettier: ^8.5.0
|
||||||
|
@ -348,6 +350,7 @@ importers:
|
||||||
class-transformer: 0.5.1
|
class-transformer: 0.5.1
|
||||||
class-validator: 0.13.2
|
class-validator: 0.13.2
|
||||||
compression: 1.7.4
|
compression: 1.7.4
|
||||||
|
cookie-parser: 1.4.6
|
||||||
date-fns: 2.28.0
|
date-fns: 2.28.0
|
||||||
express: 4.17.2
|
express: 4.17.2
|
||||||
express-rate-limit: 6.2.0_express@4.17.2
|
express-rate-limit: 6.2.0_express@4.17.2
|
||||||
|
@ -375,6 +378,7 @@ importers:
|
||||||
'@nestjs/cli': 8.2.0_eslint@8.14.0
|
'@nestjs/cli': 8.2.0_eslint@8.14.0
|
||||||
'@nestjs/schematics': 8.0.5_typescript@4.5.5
|
'@nestjs/schematics': 8.0.5_typescript@4.5.5
|
||||||
'@nestjs/testing': 8.2.6_b893ca8083ee374883b6d648098a9aeb
|
'@nestjs/testing': 8.2.6_b893ca8083ee374883b6d648098a9aeb
|
||||||
|
'@types/cookie-parser': 1.4.3
|
||||||
'@types/cron': 2.0.0
|
'@types/cron': 2.0.0
|
||||||
'@types/express': 4.17.13
|
'@types/express': 4.17.13
|
||||||
'@types/jest': 27.0.2
|
'@types/jest': 27.0.2
|
||||||
|
@ -3101,6 +3105,12 @@ packages:
|
||||||
'@types/node': 16.11.21
|
'@types/node': 16.11.21
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/@types/cookie-parser/1.4.3:
|
||||||
|
resolution: {integrity: sha512-CqSKwFwefj4PzZ5n/iwad/bow2hTCh0FlNAeWLtQM3JA/NX/iYagIpWG2cf1bQKQ2c9gU2log5VUCrn7LDOs0w==}
|
||||||
|
dependencies:
|
||||||
|
'@types/express': 4.17.13
|
||||||
|
dev: true
|
||||||
|
|
||||||
/@types/cookiejar/2.1.2:
|
/@types/cookiejar/2.1.2:
|
||||||
resolution: {integrity: sha512-t73xJJrvdTjXrn4jLS9VSGRbz0nUY3cl2DMGDU48lKl+HR9dbbjW2A9r3g40VA++mQpy6uuHg33gy7du2BKpog==}
|
resolution: {integrity: sha512-t73xJJrvdTjXrn4jLS9VSGRbz0nUY3cl2DMGDU48lKl+HR9dbbjW2A9r3g40VA++mQpy6uuHg33gy7du2BKpog==}
|
||||||
dev: true
|
dev: true
|
||||||
|
@ -4684,6 +4694,14 @@ packages:
|
||||||
dependencies:
|
dependencies:
|
||||||
safe-buffer: 5.1.2
|
safe-buffer: 5.1.2
|
||||||
|
|
||||||
|
/cookie-parser/1.4.6:
|
||||||
|
resolution: {integrity: sha512-z3IzaNjdwUC2olLIB5/ITd0/setiaFMLYiZJle7xg5Fe9KWAceil7xszYfHHBtDFYLSgJduS2Ty0P1uJdPDJeA==}
|
||||||
|
engines: {node: '>= 0.8.0'}
|
||||||
|
dependencies:
|
||||||
|
cookie: 0.4.1
|
||||||
|
cookie-signature: 1.0.6
|
||||||
|
dev: false
|
||||||
|
|
||||||
/cookie-signature/1.0.6:
|
/cookie-signature/1.0.6:
|
||||||
resolution: {integrity: sha1-4wOogrNCzD7oylE6eZmXNNqzriw=}
|
resolution: {integrity: sha1-4wOogrNCzD7oylE6eZmXNNqzriw=}
|
||||||
dev: false
|
dev: false
|
||||||
|
@ -5397,22 +5415,6 @@ packages:
|
||||||
prettier-linter-helpers: 1.0.0
|
prettier-linter-helpers: 1.0.0
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/eslint-plugin-prettier/4.0.0_74ebb802163a9b4fa8f89d76ed02f62a:
|
|
||||||
resolution: {integrity: sha512-98MqmCJ7vJodoQK359bqQWaxOE0CS8paAz/GgjaZLyex4TTk3g9HugoO89EqWCrFiOqn9EVvcoo7gZzONCWVwQ==}
|
|
||||||
engines: {node: '>=6.0.0'}
|
|
||||||
peerDependencies:
|
|
||||||
eslint: '>=7.28.0'
|
|
||||||
eslint-config-prettier: '*'
|
|
||||||
prettier: '>=2.0.0'
|
|
||||||
peerDependenciesMeta:
|
|
||||||
eslint-config-prettier:
|
|
||||||
optional: true
|
|
||||||
dependencies:
|
|
||||||
eslint: 8.14.0
|
|
||||||
eslint-config-prettier: 8.5.0_eslint@8.14.0
|
|
||||||
prettier-linter-helpers: 1.0.0
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/eslint-plugin-react-hooks/4.5.0_eslint@8.14.0:
|
/eslint-plugin-react-hooks/4.5.0_eslint@8.14.0:
|
||||||
resolution: {integrity: sha512-8k1gRt7D7h03kd+SAAlzXkQwWK22BnK6GKZG+FJA6BAGy22CFvl8kCIXKpVux0cCxMWDQUPqSok0LKaZ0aOcCw==}
|
resolution: {integrity: sha512-8k1gRt7D7h03kd+SAAlzXkQwWK22BnK6GKZG+FJA6BAGy22CFvl8kCIXKpVux0cCxMWDQUPqSok0LKaZ0aOcCw==}
|
||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
|
|
Loading…
Reference in New Issue