Skip to content

Angular OAuth client which supports resource and implicit flows

Notifications You must be signed in to change notification settings

nagyDarius/ngx-oauth

This branch is 101 commits behind Fl0r14n/ngx-oauth:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Jul 16, 2018
43c7805 · Jul 16, 2018

History

6 Commits
Jul 13, 2018
Jul 16, 2018
Jan 4, 2018
Jul 13, 2018
Jul 13, 2018
Jul 13, 2018
Jul 13, 2018
Jul 16, 2018
Jul 13, 2018
Jul 13, 2018

Repository files navigation

Angular OAuth

OAuth client for angular which supports resource and implicit flows

How to

<div class="login-component">
  <oauth-implicit [oauthConfig]="this"></oauth-implicit>
</div>  

where

export class ImplicitOauthSettings implements ImplicitOAuthConfig {
  authorizePath = '/oauth/authorize';
  profileUri = '/rest/v1/users/current';
  clientId = 'clientID';
  scope = 'basic';
}

@Component({
  selector: 'my-login',
  templateUrl: 'login.component.html',
  styleUrls: ['login.component.scss']
})
export class LoginComponent extends ImplicitOauthSettings {

  constructor() {
    super()
  }
}

or

<div class="login-component">
  <oauth-resource [oauthConfig]="this"></oauth-resource>
</div>

where

export class ResourceOAuthSettings implements ResourceOAuthConfig {
  tokenPath = '/oauth/token';
  profileUri = '/rest/v1/users/current';
  clientId = 'clientID';
  clientSecret = 'secret';
  username = 'username';
  password = 'password';
}

@Component({
  selector: 'my-login',
  templateUrl: 'login.component.html',
  styleUrls: ['login.component.scss']
})
export class LoginComponent extends ResourceOAuthSettings {

  constructor() {
    super()
  }
}

or create your custom login template using OAuthService

<form (submit)="oauthService.login()">
  <div class="card">
    <div class="card-header text-center">
      <h2 class="m-0 p-3">
        <strong>Login</strong>
      </h2>
    </div>
    <div class="card-body">
      <div class="form-group">
        <input type="text" class="form-control" name="username" required [(ngModel)]="oauthService.username"
               placeholder="username">
      </div>
      <div class="form-group">
        <input type="password" class="form-control" name="password" required [(ngModel)]="oauthService.password"
               placeholder="password">
      </div>
    </div>
    <div class="card-footer">
      <div class="text-center">
        <button type="submit" class="btn btn-primary">Submit</button>
      </div>
    </div>
  </div>
</form>

and import OAuthService in your login component constructor

Installing:

npm install ngx-oauth --save

Import OAuthModule in your angular app

App Requirements

  • none

##Running the demo

  • change proxy context in webpack.config.dev.ts so that webpack forwards your request to your oauth server
  • in app.component.ts add your clientId, secret, oauth server token enpoint and user profile endpoint
  • npm install
  • npm start

Licensing

MIT License

About

Angular OAuth client which supports resource and implicit flows

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 97.0%
  • HTML 2.8%
  • CSS 0.2%