@echo-nova-404/sso-tool
v0.1.12-beta
Published
A library for authorization checks using SSO
Downloads
1,090
Readme
@nch-nestjs/sso-tool
Библиотека для NestJS для проверки авторизации в серверных приложениях, использующих SSO.
Установка
npm install @nch-nestjs/sso-toolПодключение и использование
В app.module.ts подключите SsoToolModule
import { Module } from '@nestjs/common';
import { ConfigModule, ConfigService } from '@nestjs/config';
import { SsoApiVersion, SsoToolModule } from '@nch-nestjs/sso-tool';
@Module({
imports: [
ConfigModule.forRoot({
isGlobal: true
}),
SsoToolModule.forRootAsync({
inject: [ConfigService],
useFactory: async (configService: ConfigService) => ({
domain: configService.getOrThrow<string>('SSO_DOMAIN'),
version: SsoApiVersion.V1,
projectId: configService.getOrThrow<string>('SSO_PROJECT_ID'),
}),
}),
],
controllers: [],
providers: [],
})
export class AppModule {}Подключите декоратор @Auth
import { Controller, Get } from '@nestjs/common';
import { Auth } from '@nch-nestjs/sso-tool';
@Controller({
path: 'user',
version: '1',
})
export class UserController {
@Auth(['default'])
@Get('')
async getUsers() {
return [
{
id: 1,
name: 'Пользователь'
}
]
}
}Использование API SSO
import { Injectable } from '@nestjs/common';
import { SsoToolV1Service } from "@nch-nestjs/sso-tool";
@Injectable()
export class GeneralService {
constructor(
private readonly ssoToolV1Service: SsoToolV1Service
) {}
async getMyUser(token: string) {
return await this.ssoToolV1Service.getUser(token);
}
}
