Dangl.Identity Client Libraries

    Build Status

    Changelog
    Online Documentation

    Dangl.Identity is an OpenID / OAuth2 capable server that offers single sign on functionalities. It's primary is available at https://identity.dangl-it.com with a fallback at https://identity.dangl-it.de.
    It works with all OpenID Connect compatible clients and it's configuration is available here.
    The preview is available at https://identity-dev.dangl-it.com.

    The Dangl.Identity.Client libraries offer specialised classes and utilities that make integrating and connecting with Dangl.Identity easy.

    Default Configuration

    By default, the identity servers are expected to be reachable at https://identity.dangl-it.com and https://identity.dangl-it.de. Fallback happens automatically to the latter one if the former is unreachable.

    Dangl.Identity.Client

    This project includes the DanglIdentityLoginHandler that offers JWT / OAuth2 login and refresh functionalities for clients that have the ResourceOwnerPasswordGrant enabled. The DanglIdentityClientCredentialsLoginHandler can be used with clients that have the ClientCredentials grant enabled, for example in server-side applications.

    Both login handlers require an instance of HttpClient to be injected at creation. It is advised that the HttpClientFactory from the Microsoft.Extensions.Http package is used to efficiently manage the lifetime of HttpClient instances.

    Angular Client

    Web applications that use the integrated Dangl.Identity JWT endpoints from the Dangl.Identity.Client.MVC package can use the @dangl/angular-dangl-identity-client npm package.

    This package offers a generated client for the Dangl.Identity JWT endpoints and manages local storage of JWT tokens. The client assumes that the endpoint is available on the current host, otherwise it uses an injection parameter:

    @Optional() @Inject(DANGL_IDENTITY_CLIENT_API_BASE_URL) baseUrl?: string
    

    Install Dependencies

    The package requires a peer dependency of @auth0/angular-jwt which must be manually installed in the consuming project.

    Reference Module

    Just import the DanglIdentityModule in your app.

    import { AppComponent } from './app.component';
    import { DanglIdentityModule } from '@dangl/angular-dangl-identity-client';
    
    @NgModule({
      imports: [
        DanglIdentityModule
      ],
      bootstrap: [AppComponent]
    })
    export class AppModule { }
    

    Login / Logout

    Here's an example login functionality:

    import { AuthenticationService,
      AuthenticationMessenger } from '@dangl/angular-dangl-identity-client';
    
    this.isAuthenticatedSubscription = this.authenticationMessenger
          .isAuthenticated
          .subscribe(ia => this.isAuthenticated = ia);
    
    login() {
        this.requestEnRoute = true;
    
        this.authenticationService
          .loginWithToken(this.credentials.identifier, this.credentials.password)
          .subscribe(r => {
            this.requestEnRoute = false;
            if (r) {
              this.showLoginError = false;
              this.errorCount = 0;
              this.router.navigateByUrl('/');
            } else {
              this.showLoginError = true;
              this.errorCount++;
            }
          });
      }
    

    AuthenticationMessenger

    The AuthenticationMessenger class can be used to watch for changes in the authentication.

    • Improve this Doc
    Back to top © Dangl IT GmbH