ng-auth-jwt
v0.1.0-beta.1
Published
This package provides some utilities to deal with authentication features that are implemented based on JWT.
Downloads
1
Readme
NgAuthJwt
This package provides some utilities to deal with authentication features that are implemented based on JWT.
Built-in
Directives
- isCurrentUser
- isAuthenticated
- userRole
Services
NgAuthenticationService
Methods
- signInWithLink
- signOut
- isAuthenticated
- isCurrentUser
- userRole
- getUserInfo
Usage
Import NgAuthentication to your AppModule
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
NgAuthenticationModule.forRoot({
authProvider: environment.authProvider,
loginUri: 'signInWithLink'
})
],
providers: [],
bootstrap: [AppComponent]
})
Directives
1. isAuthenticated
1.1. Display content in case user is authenticated
<ng-template isAuthenticated>
<h1>Welcome user!</h1>
</ng-template>
Or
<h1 *isAuthenticated >Welcome user!</h1>
1.2. Check if user is authenticated or not and then display content accordingly
<ng-template isAuthenticated>
<h1 * >Welcome user!</h1> <!-- This content will be displayed if user is authenticated -->
<button * class="btn">Please sign in!</button> <!-- This content will be displayed if not -->
</ng-template>
1.3. Display content in case user is unauthenticated
<ng-template isAuthenticated>
<ng-template></ng-template> <!-- Trick: Define empty content for the right condition -->
<button * class="btn">Please sign in!</button>
</ng-template>
2. isCurrentUser
2.1. Display content in case logger is current user
<ng-template [isCurrentUser]="'vix'">
<h1>It me ¯\_(ツ)_/¯</h1>
</ng-template>
Or
<h1 *isCurrentUser="'vix" >It me ¯\_(ツ)_/¯</h1>
2.2. Check if logger is current user or not and then display content accordingly
<ng-template [isCurrentUser]="'vix'">
<h1 * >It me ¯\_(ツ)_/¯</h1> <!-- This content will be displayed if logger is current user -->
<button * class="btn">Who are you?</button> <!-- This content will be displayed if not -->
</ng-template>
2.3. Display content in case current user is not logged in
<ng-template [isCurrentUser]="'vix'">
<ng-template></ng-template> <!-- Trick: Define empty content for the right condition -->
<button * class="btn">Who are you?</button>
</ng-template>
3. userRole
Check & display based on user role (the same concepts with ngSwitchCase)
<ng-template userRole>
<ng-template [userRoleIs]="'admin'">
<button class="btn">Remove</button>
</ng-template>
</ng-template>
Or
<ng-template userRole>
<button *userRoleIs="'admin'" class="btn">Remove</button>
</ng-template>
Services
Inject NgAuthenticationService into AppComponent (in case you want to use some method of this service)
export class AppComponent {
constructor(
@Inject(NgAuthenticationService) private auth: NgAuthenticationService
) {}
}