Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- typeORM
- GIT
- mongoose
- Bull
- Dinosaur
- 공룡게임
- react
- class
- OCR
- nodejs
- JavaScript
- Python
- game
- nestjs
- TypeScript
- 게임
- Sequelize
- jest
- Nest.js
- AWS
- dfs
- MySQL
- flask
- 자료구조
- MongoDB
- Express
- cookie
- Queue
- 정렬
Archives
- Today
- Total
포시코딩
[NestJS] Strategy, Guard 한 파일에 깔끔하게쓰기 본문
728x90
import { Injectable } from '@nestjs/common';
import { PassportStrategy, AuthGuard } from '@nestjs/passport';
import { BearerStrategy } from 'passport-azure-ad';
import { AzureUser } from './user';
const clientID = process.env.AAD_CLIENT_ID;
const tenantID = process.env.AAD_TENANT_ID;
@Injectable()
export class AzureADStrategy extends PassportStrategy(BearerStrategy, 'aad') {
constructor() {
super({
identityMetadata: `https://login.microsoftonline.com/${ tenantID }/v2.0/.well-known/openid-configuration`,
clientID
});
}
async validate(data: AzureUser) {
return data;
}
}
export const AzureADGuard = AuthGuard('aad');
@Module({
imports: [PassportModule],
controllers: [AppController],
providers: [AzureADStrategy]
})
export class AppModule {}
SSO 관련해서 서칭중에 위와 같은 코드를 발견했는데,
그동안 something.strategy.ts, something.guard.ts 처럼 나눠 써왔던 걸
어차피 OneToOne으로 사용하니 something.guard.ts 한 파일로 활용하면 좀 더 깔끔한 폴더구조가 되지 않을까 싶어 기록한다.
물론 strategy는 따로 module에 providers로 등록해줘야하며
두 파일로 나눠 작성하는 특별한 이유가 있을 수도 있다는 걸 생각하자
728x90
'Node.js' 카테고리의 다른 글
[NestJS] cache-manager with. Redis (v. 2024) (0) | 2024.02.13 |
---|---|
[NestJS] SAML Assertion에 값 추가 (passport-saml, strategy) (0) | 2024.02.05 |
[Test] 외부 라이브러리 mock 시키기 (0) | 2023.12.26 |
[GraphQL] Utility type in entity (0) | 2023.12.21 |
[TypeORM] save, insert, update, upsert 동작 원리 (0) | 2023.12.21 |