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 | 31 |
Tags
- 게임
- mongoose
- class
- Express
- jest
- 자료구조
- flask
- MongoDB
- Queue
- Sequelize
- Nest.js
- GIT
- nodejs
- Dinosaur
- OCR
- 정렬
- 공룡게임
- MySQL
- JavaScript
- nestjs
- AWS
- typeORM
- dfs
- Python
- TypeScript
- Bull
- game
- react
- cookie
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 |