This repository shows a basic Angular CLI application with the angular-oauth2-oidc
library and Angular AuthGuards.
This demonstrates:
- Use of the Implicit Flow, see the
master
branch for Code Flow support (now the recommended flow for SPA's) - Modules (core, shared, and two feature modules)
- An auth guard that forces you to login when navigating to protected routes
- An auth guard that just prevents you from navigating to protected routes
- Asynchronous loading of login information (and thus async auth guards)
- Using
localStorage
for storing tokens (use at your own risk!) - Loading IDS details from its discovery document
- Trying silent refresh on app startup before potientially starting a login flow
- OpenID's external logout features
Most interesting features can be found in the core module.
This repository has been scaffolded with the Angular 5 CLI, then later upgraded to newer versions of the Angular CLI. To use the repository:
- Clone this repository
- Run
npm install
to get the dependencies - Run
ng serve --open
to get it running on http://localhost:4200
This connects to the demo IdentityServer4 instance also used in the library's examples. The credentials and ways of logging in are disclosed on the login page itself (as it's only a demo server).
You could also connect to your own IdentityServer by changing auth-config.ts
.
Note that your server must whitelist both http://localhost:4200/index.html
and http://localhost:4200/silent-refresh.html
for this to work.
The application is supposed to look somewhat like this: