├── .env.example ├── .eslintrc.js ├── .gitignore ├── .prettierrc ├── LICENSE ├── README.md ├── nest-cli.json ├── ormconfig.json ├── package.json ├── src ├── app.controller.spec.ts ├── app.controller.ts ├── app.module.ts ├── app.service.ts ├── jwks.json ├── main.ts ├── oauth │ ├── access-token │ │ ├── access-token.entity.ts │ │ ├── access-token.module.ts │ │ ├── access-token.service.spec.ts │ │ └── access-token.service.ts │ ├── authorization-code │ │ ├── authorization-code.entity.ts │ │ ├── authorization-code.module.ts │ │ ├── authorization-code.service.spec.ts │ │ └── authorization-code.service.ts │ ├── client │ │ ├── client.controller.spec.ts │ │ ├── client.controller.ts │ │ ├── client.entity.ts │ │ ├── client.module.ts │ │ ├── client.service.spec.ts │ │ └── client.service.ts │ ├── oauth-model.service.spec.ts │ ├── oauth-model.service.ts │ ├── oauth-server.service.ts │ ├── oauth.controller.spec.ts │ ├── oauth.controller.ts │ ├── oauth.dto.ts │ ├── oauth.module.ts │ └── user │ │ ├── user.controller.spec.ts │ │ ├── user.controller.ts │ │ ├── user.entity.ts │ │ ├── user.module.ts │ │ ├── user.service.spec.ts │ │ └── user.service.ts ├── oidc │ ├── account │ │ ├── account.service.spec.ts │ │ └── account.service.ts │ ├── adapter │ │ └── typeorm-adapter.service.ts │ ├── entities │ │ ├── AccessToken.entity.ts │ │ ├── AuthorizationCode.entity.ts │ │ ├── BaseGrantableEntity.ts │ │ ├── BaseOidcEntity.ts │ │ ├── Client.entity.ts │ │ ├── ClientCredentials.entity.ts │ │ ├── DeviceCode.entity.ts │ │ ├── Grant.entity.ts │ │ ├── InitialAccessToken.entity.ts │ │ ├── Interaction.entity.ts │ │ ├── PushedAuthorizationRequest.entity.ts │ │ ├── RefreshToken.entity.ts │ │ ├── RegistrationAccessToken.entity.ts │ │ ├── ReplayDetection.entity.ts │ │ └── Session.entity.ts │ ├── interactions │ │ ├── interactions.controller.spec.ts │ │ └── interactions.controller.ts │ ├── oidc-provider.module.ts │ ├── oidc-provider.service.spec.ts │ ├── oidc-provider.service.ts │ ├── oidc.controller.spec.ts │ └── oidc.controller.ts └── views │ ├── interaction.ejs │ └── login.ejs ├── test ├── app.e2e-spec.ts └── jest-e2e.json ├── tools ├── jwks-genrator.ts └── secure-key-generator.ts ├── tsconfig.build.json └── tsconfig.json /.env.example: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leduyminh48/nestjs-oauth2-example/HEAD/.env.example -------------------------------------------------------------------------------- /.eslintrc.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leduyminh48/nestjs-oauth2-example/HEAD/.eslintrc.js -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leduyminh48/nestjs-oauth2-example/HEAD/.gitignore -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leduyminh48/nestjs-oauth2-example/HEAD/.prettierrc -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leduyminh48/nestjs-oauth2-example/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leduyminh48/nestjs-oauth2-example/HEAD/README.md -------------------------------------------------------------------------------- /nest-cli.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leduyminh48/nestjs-oauth2-example/HEAD/nest-cli.json -------------------------------------------------------------------------------- /ormconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leduyminh48/nestjs-oauth2-example/HEAD/ormconfig.json -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leduyminh48/nestjs-oauth2-example/HEAD/package.json -------------------------------------------------------------------------------- /src/app.controller.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leduyminh48/nestjs-oauth2-example/HEAD/src/app.controller.spec.ts -------------------------------------------------------------------------------- /src/app.controller.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leduyminh48/nestjs-oauth2-example/HEAD/src/app.controller.ts -------------------------------------------------------------------------------- /src/app.module.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leduyminh48/nestjs-oauth2-example/HEAD/src/app.module.ts -------------------------------------------------------------------------------- /src/app.service.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leduyminh48/nestjs-oauth2-example/HEAD/src/app.service.ts -------------------------------------------------------------------------------- /src/jwks.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leduyminh48/nestjs-oauth2-example/HEAD/src/jwks.json -------------------------------------------------------------------------------- /src/main.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leduyminh48/nestjs-oauth2-example/HEAD/src/main.ts -------------------------------------------------------------------------------- /src/oauth/access-token/access-token.entity.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leduyminh48/nestjs-oauth2-example/HEAD/src/oauth/access-token/access-token.entity.ts -------------------------------------------------------------------------------- /src/oauth/access-token/access-token.module.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leduyminh48/nestjs-oauth2-example/HEAD/src/oauth/access-token/access-token.module.ts -------------------------------------------------------------------------------- /src/oauth/access-token/access-token.service.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leduyminh48/nestjs-oauth2-example/HEAD/src/oauth/access-token/access-token.service.spec.ts -------------------------------------------------------------------------------- /src/oauth/access-token/access-token.service.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leduyminh48/nestjs-oauth2-example/HEAD/src/oauth/access-token/access-token.service.ts -------------------------------------------------------------------------------- /src/oauth/authorization-code/authorization-code.entity.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leduyminh48/nestjs-oauth2-example/HEAD/src/oauth/authorization-code/authorization-code.entity.ts -------------------------------------------------------------------------------- /src/oauth/authorization-code/authorization-code.module.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leduyminh48/nestjs-oauth2-example/HEAD/src/oauth/authorization-code/authorization-code.module.ts -------------------------------------------------------------------------------- /src/oauth/authorization-code/authorization-code.service.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leduyminh48/nestjs-oauth2-example/HEAD/src/oauth/authorization-code/authorization-code.service.spec.ts -------------------------------------------------------------------------------- /src/oauth/authorization-code/authorization-code.service.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leduyminh48/nestjs-oauth2-example/HEAD/src/oauth/authorization-code/authorization-code.service.ts -------------------------------------------------------------------------------- /src/oauth/client/client.controller.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leduyminh48/nestjs-oauth2-example/HEAD/src/oauth/client/client.controller.spec.ts -------------------------------------------------------------------------------- /src/oauth/client/client.controller.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leduyminh48/nestjs-oauth2-example/HEAD/src/oauth/client/client.controller.ts -------------------------------------------------------------------------------- /src/oauth/client/client.entity.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leduyminh48/nestjs-oauth2-example/HEAD/src/oauth/client/client.entity.ts -------------------------------------------------------------------------------- /src/oauth/client/client.module.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leduyminh48/nestjs-oauth2-example/HEAD/src/oauth/client/client.module.ts -------------------------------------------------------------------------------- /src/oauth/client/client.service.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leduyminh48/nestjs-oauth2-example/HEAD/src/oauth/client/client.service.spec.ts -------------------------------------------------------------------------------- /src/oauth/client/client.service.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leduyminh48/nestjs-oauth2-example/HEAD/src/oauth/client/client.service.ts -------------------------------------------------------------------------------- /src/oauth/oauth-model.service.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leduyminh48/nestjs-oauth2-example/HEAD/src/oauth/oauth-model.service.spec.ts -------------------------------------------------------------------------------- /src/oauth/oauth-model.service.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leduyminh48/nestjs-oauth2-example/HEAD/src/oauth/oauth-model.service.ts -------------------------------------------------------------------------------- /src/oauth/oauth-server.service.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leduyminh48/nestjs-oauth2-example/HEAD/src/oauth/oauth-server.service.ts -------------------------------------------------------------------------------- /src/oauth/oauth.controller.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leduyminh48/nestjs-oauth2-example/HEAD/src/oauth/oauth.controller.spec.ts -------------------------------------------------------------------------------- /src/oauth/oauth.controller.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leduyminh48/nestjs-oauth2-example/HEAD/src/oauth/oauth.controller.ts -------------------------------------------------------------------------------- /src/oauth/oauth.dto.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leduyminh48/nestjs-oauth2-example/HEAD/src/oauth/oauth.dto.ts -------------------------------------------------------------------------------- /src/oauth/oauth.module.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leduyminh48/nestjs-oauth2-example/HEAD/src/oauth/oauth.module.ts -------------------------------------------------------------------------------- /src/oauth/user/user.controller.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leduyminh48/nestjs-oauth2-example/HEAD/src/oauth/user/user.controller.spec.ts -------------------------------------------------------------------------------- /src/oauth/user/user.controller.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leduyminh48/nestjs-oauth2-example/HEAD/src/oauth/user/user.controller.ts -------------------------------------------------------------------------------- /src/oauth/user/user.entity.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leduyminh48/nestjs-oauth2-example/HEAD/src/oauth/user/user.entity.ts -------------------------------------------------------------------------------- /src/oauth/user/user.module.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leduyminh48/nestjs-oauth2-example/HEAD/src/oauth/user/user.module.ts -------------------------------------------------------------------------------- /src/oauth/user/user.service.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leduyminh48/nestjs-oauth2-example/HEAD/src/oauth/user/user.service.spec.ts -------------------------------------------------------------------------------- /src/oauth/user/user.service.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leduyminh48/nestjs-oauth2-example/HEAD/src/oauth/user/user.service.ts -------------------------------------------------------------------------------- /src/oidc/account/account.service.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leduyminh48/nestjs-oauth2-example/HEAD/src/oidc/account/account.service.spec.ts -------------------------------------------------------------------------------- /src/oidc/account/account.service.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leduyminh48/nestjs-oauth2-example/HEAD/src/oidc/account/account.service.ts -------------------------------------------------------------------------------- /src/oidc/adapter/typeorm-adapter.service.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leduyminh48/nestjs-oauth2-example/HEAD/src/oidc/adapter/typeorm-adapter.service.ts -------------------------------------------------------------------------------- /src/oidc/entities/AccessToken.entity.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leduyminh48/nestjs-oauth2-example/HEAD/src/oidc/entities/AccessToken.entity.ts -------------------------------------------------------------------------------- /src/oidc/entities/AuthorizationCode.entity.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leduyminh48/nestjs-oauth2-example/HEAD/src/oidc/entities/AuthorizationCode.entity.ts -------------------------------------------------------------------------------- /src/oidc/entities/BaseGrantableEntity.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leduyminh48/nestjs-oauth2-example/HEAD/src/oidc/entities/BaseGrantableEntity.ts -------------------------------------------------------------------------------- /src/oidc/entities/BaseOidcEntity.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leduyminh48/nestjs-oauth2-example/HEAD/src/oidc/entities/BaseOidcEntity.ts -------------------------------------------------------------------------------- /src/oidc/entities/Client.entity.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leduyminh48/nestjs-oauth2-example/HEAD/src/oidc/entities/Client.entity.ts -------------------------------------------------------------------------------- /src/oidc/entities/ClientCredentials.entity.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leduyminh48/nestjs-oauth2-example/HEAD/src/oidc/entities/ClientCredentials.entity.ts -------------------------------------------------------------------------------- /src/oidc/entities/DeviceCode.entity.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leduyminh48/nestjs-oauth2-example/HEAD/src/oidc/entities/DeviceCode.entity.ts -------------------------------------------------------------------------------- /src/oidc/entities/Grant.entity.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leduyminh48/nestjs-oauth2-example/HEAD/src/oidc/entities/Grant.entity.ts -------------------------------------------------------------------------------- /src/oidc/entities/InitialAccessToken.entity.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leduyminh48/nestjs-oauth2-example/HEAD/src/oidc/entities/InitialAccessToken.entity.ts -------------------------------------------------------------------------------- /src/oidc/entities/Interaction.entity.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leduyminh48/nestjs-oauth2-example/HEAD/src/oidc/entities/Interaction.entity.ts -------------------------------------------------------------------------------- /src/oidc/entities/PushedAuthorizationRequest.entity.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leduyminh48/nestjs-oauth2-example/HEAD/src/oidc/entities/PushedAuthorizationRequest.entity.ts -------------------------------------------------------------------------------- /src/oidc/entities/RefreshToken.entity.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leduyminh48/nestjs-oauth2-example/HEAD/src/oidc/entities/RefreshToken.entity.ts -------------------------------------------------------------------------------- /src/oidc/entities/RegistrationAccessToken.entity.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leduyminh48/nestjs-oauth2-example/HEAD/src/oidc/entities/RegistrationAccessToken.entity.ts -------------------------------------------------------------------------------- /src/oidc/entities/ReplayDetection.entity.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leduyminh48/nestjs-oauth2-example/HEAD/src/oidc/entities/ReplayDetection.entity.ts -------------------------------------------------------------------------------- /src/oidc/entities/Session.entity.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leduyminh48/nestjs-oauth2-example/HEAD/src/oidc/entities/Session.entity.ts -------------------------------------------------------------------------------- /src/oidc/interactions/interactions.controller.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leduyminh48/nestjs-oauth2-example/HEAD/src/oidc/interactions/interactions.controller.spec.ts -------------------------------------------------------------------------------- /src/oidc/interactions/interactions.controller.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leduyminh48/nestjs-oauth2-example/HEAD/src/oidc/interactions/interactions.controller.ts -------------------------------------------------------------------------------- /src/oidc/oidc-provider.module.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leduyminh48/nestjs-oauth2-example/HEAD/src/oidc/oidc-provider.module.ts -------------------------------------------------------------------------------- /src/oidc/oidc-provider.service.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leduyminh48/nestjs-oauth2-example/HEAD/src/oidc/oidc-provider.service.spec.ts -------------------------------------------------------------------------------- /src/oidc/oidc-provider.service.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leduyminh48/nestjs-oauth2-example/HEAD/src/oidc/oidc-provider.service.ts -------------------------------------------------------------------------------- /src/oidc/oidc.controller.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leduyminh48/nestjs-oauth2-example/HEAD/src/oidc/oidc.controller.spec.ts -------------------------------------------------------------------------------- /src/oidc/oidc.controller.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leduyminh48/nestjs-oauth2-example/HEAD/src/oidc/oidc.controller.ts -------------------------------------------------------------------------------- /src/views/interaction.ejs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leduyminh48/nestjs-oauth2-example/HEAD/src/views/interaction.ejs -------------------------------------------------------------------------------- /src/views/login.ejs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leduyminh48/nestjs-oauth2-example/HEAD/src/views/login.ejs -------------------------------------------------------------------------------- /test/app.e2e-spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leduyminh48/nestjs-oauth2-example/HEAD/test/app.e2e-spec.ts -------------------------------------------------------------------------------- /test/jest-e2e.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leduyminh48/nestjs-oauth2-example/HEAD/test/jest-e2e.json -------------------------------------------------------------------------------- /tools/jwks-genrator.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leduyminh48/nestjs-oauth2-example/HEAD/tools/jwks-genrator.ts -------------------------------------------------------------------------------- /tools/secure-key-generator.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leduyminh48/nestjs-oauth2-example/HEAD/tools/secure-key-generator.ts -------------------------------------------------------------------------------- /tsconfig.build.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leduyminh48/nestjs-oauth2-example/HEAD/tsconfig.build.json -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leduyminh48/nestjs-oauth2-example/HEAD/tsconfig.json --------------------------------------------------------------------------------