Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

oidc-provider module for Nest framework (node.js)

License

NotificationsYou must be signed in to change notification settings

modernweb-pl/nest-oidc-provider

 
 

Repository files navigation

NPM VersionnpmNPM LicenseCoverage StatusContinuous Integration

Description

oidc-provider module forNest framework (node.js)

Installation

$ npm i --save nest-oidc-provider oidc-provider

OR

$ yarn add nest-oidc-provider oidc-provider

Setup

Basic configuration

@Module({imports:[OidcModule.forRoot({issuer:'http://localhost:3000',path:'/oidc',oidc: ...// oidc-provider configuration})],})exportclassAppModule{}

Custom factory function

You can pass afactory function to customize the provider instantiation.

@Module({imports:[OidcModule.forRoot({issuer:'http://localhost:3000',path:'/oidc',factory:(issuer,config)=>{constprovider=newoidc.Provider(issuer,config);provider.on('server_error',(ctx,err)=>{...})returnprovider;},oidc: ...// oidc-provider configuration})],})exportclassAppModule{}

Trusting TLS offloading proxies

You can set theproxy option totrue to trust TLS offloading proxies.
For more info visit theoidc-provider documentation:Trusting TLS offloading proxies

@Module({imports:[OidcModule.forRoot({issuer:'http://localhost:3000',path:'/oidc',proxy:true,// <= trust TLS offloading proxiesoidc:{...}})],})exportclassAppModule{}

Async configuration

useFactory

@Module({imports:[OidcModule.forRootAsync({imports:[ConfigModule],useFactory:async(configService:ConfigService)=>({issuer:configService.get<string>('ISSUER'),path:configService.get<string>('OIDC_PATH'),oidc: ...// oidc-provider configuration}),inject:[ConfigService],}),],})exportclassAppModule{}

useClass

@Module({imports:[OidcModule.forRootAsync({useClass:OidcConfigService,}),],})exportclassAppModule{}

Note that in this example, theOidcConfigService has to implement theOidcModuleOptionsFactory interface, as shown below.

@Injectable()exportclassOidcConfigServiceimplementsOidcModuleOptionsFactory{constructor(privatereadonly @InjectConnection()conn:Connection){}createModuleOptions():OidcModuleOptions{return{issuer:'http://localhost:3001',path:'/oidc',oidc: ...,// oidc-provider configuration};}createAdapterFactory?():AdapterFactory{return(modelName:string)=>newMyAdapter(modelName,this.conn);}}

You can omit theAdapter option of oidc-provider configuration if you implement thecreateAdapterFactory method.

useExisting

@Module({imports:[OidcModule.forRootAsync({imports:[OidcConfigModule],useExisting:OidcConfigService,}),],})exportclassAppModule{}

Custom param decorators

@Oidc.Interaction()

Returns an instance ofInteractionHelper class.

@Get(':uid')@Render('login')asynclogin(  @Oidc.Interaction()interaction:InteractionHelper){const{ prompt, params, uid}=awaitinteraction.details();constclient=awaitthis.provider.Client.find(params.client_idasstring);return{ prompt, client, params, uid, ...};}

TheInteractionHelper class is just a helper that omits thereq andres parameters from the existing interaction methods inoidc-provider.

interfaceInteractionHelper{details():Promise<InteractionDetails>;finished(result:InteractionResults,options?:{mergeWithLastSubmission?:boolean},):Promise<void>;result(result:InteractionResults,options?:{mergeWithLastSubmission?:boolean},):Promise<string>;}

@Oidc.Context()

Returns an instance ofKoaContextWithOIDC.

@Get()asyncindex(@Oidc.Context()ctx:KoaContextWithOIDC){const{oidc:{ provider}}=ctx;constsession=awaitprovider.Session.get(ctx);//...}

Examples

A complete example can be found in theexample directory.

Contributing

You are welcome to contribute to this project, just open a PR.

CHANGELOG

SeeCHANGELOG for more information.

License

This project isMIT licensed.

About

oidc-provider module for Nest framework (node.js)

Resources

License

Contributing

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript88.2%
  • EJS10.2%
  • JavaScript1.5%
  • CSS0.1%

[8]ページ先頭

©2009-2025 Movatter.jp