我已按照本指南https://auth0.com/blog/creating-beautiful-apps-with-angular-material/创建了一个Web应用程序。
在指南中,他们创建auth0.ts文件。
在那里,他们提到设置我的APPLICATION_CLIENT_ID和YOUR_AUTH0_DOMAIN。
我不知道从哪里获取这些ID。
这是我的auth.ts
文件的代码。
import { Injectable } from '@angular/core';
import { Router } from '@angular/router';
import * as auth0 from 'auth0-js';
(window as any).global = window;
@Injectable()
export class AuthService {
auth0 = new auth0.WebAuth({
clientID: '<APPLICATION_CLIENT_ID>',
domain: '<YOUR_AUTH0_DOMAIN>',
responseType: 'token',
redirectUri: 'http://localhost:4200/',
scope: 'openid'
});
accessToken: String;
expiresAt: Number;
constructor(public router: Router) { }
public login(): void {
this.auth0.authorize();
}
public handleAuthentication(): void {
this.auth0.parseHash((err, authResult) => {
if (authResult && authResult.accessToken) {
window.location.hash = '';
this.accessToken = authResult.accessToken;
this.expiresAt = (authResult.expiresIn * 1000) + new Date().getTime();
this.router.navigate(['/dashboard']);
} else if (err) {
this.router.navigate(['/']);
console.log(err);
}
});
}
public logout(): void {
this.accessToken = null;
this.expiresAt = null;
this.router.navigate(['/']);
}
public isAuthenticated(): boolean {
return new Date().getTime() < this.expiresAt;
}
}
答案 0 :(得分:3)
听起来您注册了Auth0并创建了一个应用程序。
如果您转到Application Dashboard,则会看到列出了您的应用。
单击应用程序的名称,您将进入应用程序设置页面。右侧的小图标可让您复制所需的信息。
如果您尚未注册,则可以免费sign up。
登录后,您需要创建一个新应用程序,然后单击“ + New Application”。在这里,您可以按照内置指南在Auth0内部创建单页应用程序。
创建应用程序后,可以将上述配置复制到auth.ts
文件中。
如果您要复制我的屏幕截图中的设置,则您的auth.ts
文件将如下所示:
import { Injectable } from '@angular/core';
import { Router } from '@angular/router';
import * as auth0 from 'auth0-js';
(window as any).global = window;
@Injectable()
export class AuthService {
auth0 = new auth0.WebAuth({
clientID: 'c45ij324tg345bjnfojo2u6b4352',
domain: 'your-auth0-domain.auth0.com',
responseType: 'token',
redirectUri: 'http://localhost:4200/',
scope: 'openid'
});
accessToken: String;
expiresAt: Number;
constructor(public router: Router) { }
public login(): void {
this.auth0.authorize();
}
public handleAuthentication(): void {
this.auth0.parseHash((err, authResult) => {
if (authResult && authResult.accessToken) {
window.location.hash = '';
this.accessToken = authResult.accessToken;
this.expiresAt = (authResult.expiresIn * 1000) + new Date().getTime();
this.router.navigate(['/dashboard']);
} else if (err) {
this.router.navigate(['/']);
console.log(err);
}
});
}
public logout(): void {
this.accessToken = null;
this.expiresAt = null;
this.router.navigate(['/']);
}
public isAuthenticated(): boolean {
return new Date().getTime() < this.expiresAt;
}
}
披露:我为Auth0工作。