Я использую Auth0 вместе с приложением Angular. Я использую API управления Auth0 для обновления метаданных профиля следующими методами, которые я получил из документации Auth0:
public getProfile(cb): void {
if (!this._accessToken) {
throw new Error('Access Token must exist to fetch profile');
}
const self = this;
this.auth0.client.userInfo(this._accessToken, (err, profile) => {
if (profile) {
self.userProfile = profile;
}
cb(err, profile);
});
}
public updateProfile(profileChanges : ProfileUpdate): Observable<any> {
console.log(this.userProfile);
var url = 'https://APP.auth0.com/api/v2/users/' + this.userProfile.sub;
var data = {
user_metadata: {
firstName: profileChanges.firstName,
lastName: profileChanges.lastName,
telephone: profileChanges.telephone
}
};
return this.http.patch(url, data);
}
Поскольку в JwtInterceptor у меня будет несколько дополнительных настраиваемых логических операций, я написал такую же, вместо того чтобы использовать HttpClient из расширений Auth0:
@Injectable()
export class JwtInterceptor implements HttpInterceptor {
constructor(private authenticationService: AuthService) { }
intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
let currentUser = this.authenticationService.currentUserValue;
if (currentUser) {
request = request.clone({
setHeaders: {
Authorization: `Bearer ${currentUser.token}`
}
});
}
return next.handle(request);
}
}
Это заканчивается 401 против API управления каждый раз, когда я пытаюсь получить или опубликовать обновление профиля. Однако механизмы аутентификации и авторизации работают без проблем, и я могу войти в систему и выйти из нее просто отлично. Вместо этого я пытался переключить токены на idTokens и убедиться, что я не пропускаю никаких разрешений внутри панели мониторинга Auth0, но ничего не вижу. Есть идеи, что это может быть?