OAuth2 ライブラリ ( angular-oauth2-oidc )を使用するように Angular アプリを構成しようとしています。
ファイル auth.service.ts で、私の OAuthService が構成されています。
this.oauthService.loginUrl = 'https://serverdomain.com/authorization/';
this.oauthService.redirectUri = 'http://localhost:4200/auth';
this.oauthService.clientId = '1111-2222-3333-4444-5555-6666-7777';
this.oauthService.setStorage(localStorage);
this.oauthService.requireHttps = false;
this.oauthService.responseType = 'token';
this.oauthService.tokenEndpoint = 'https://serverdomain.com/token/';
this.oauthService.oidc = false;
this.oauthService.issuer = 'https://serverdomain.com/authorization/';
this.oauthService.tokenValidationHandler = new JwksValidationHandler();
this.oauthService.requestAccessToken = true;
this.oauthService.showDebugInformation = true;
this.oauthService.scope = 'openid profile email';
this.oauthService.tryLogin({
onTokenReceived: context => {
console.log(context);
}
});
obtainAccessToken() {
this.oauthService.initImplicitFlow();
}
isLoggedIn() {
if (this.oauthService.getAccessToken() === null) {
return false;
}
return true;
}
logout() {
this.oauthService.logOut();
location.reload();
}
logAuthData() {
console.log(this.oauthService.hasValidAccessToken());
}
ホーム コンポーネントに、暗黙的なフローをトリガーしてアクセス トークンを取得するボタンを追加しました。
暗黙的なフローの初期化後、アプリはプロバイダーの正しいログイン ページにリダイレクトされ、そこでログインして OAuth 構成の redirectUri にリダイレクトされます。
しかし
状態を取得しようとすると、たとえば isLoggedIn メソッドを呼び出すと、常に false になります。また、hasValidAccessToken() で false が返されます。
angular 5とoauth2を正しく構成する方法を誰かが示すことができますか? また、与えられたアクセス トークンを保存して、残りのメソッドで使用してデータを取得する可能性も必要です。