私はAuth0を使用して、Google、Facebookなどからユーザーを認証します。これは、URLがAuth0のホワイトリストにあるコールバックURLのリストにある間にログインをクリックすると完全に機能します。Angular 2アプリケーションでのコールバックURLの不一致の取得
しかし、私のWebアプリケーションには任意の数の異なるURLを割り当てることができます。したがって、いくつかの許可されたURLで簡単なホワイトリストを作成することはできません。
ログインは、ログインしたときと同じURLに常にリダイレクトしようとします。このURLは、ほとんどの場合、許可されたURLのリストには含まれません。
私は上記の設定のバリエーションのすべての種類を試してみましたが、私は唯一のこれらのもののようなエラーを取得:
URL「https://x.com/posts/gif/hot/1は」 "許可コールバックURLのリスト
URLではありませんhttps://x.com/posts/world/new/1がhttps://x.com/posts/nature/hot/6がhttps://x.com/posts/gaming/hot/3「許可されたコールバックURLを
URLのリストにありません」「許可するコールバックURLを
URLのリストにありません」「許さコールバックURLのリストにない
ロックの設定に関連するコード:
options = {
auth: {
callbackURL: 'https://x.com',
// redirectUrl: 'https://x.com',
responseType: 'token',
// sso: true,
// redirect: true,
params: {
scope: 'openid user_id name nickname email picture'
}
}
};
// Configure Auth0
lock = new Auth0Lock('x', 'x.auth0.com', this.options);
constructor(private _router: Router) {
this.userProfile = JSON.parse(localStorage.getItem('profile'));
// Add callback for the Lock `authenticated` event
this.lock.on('authenticated', (authResult) => {
localStorage.setItem('id_token', authResult.idToken);
// Fetch profile information
this.lock.getProfile(authResult.idToken, (error, profile) => {
if (error) {
throw new Error(error);
}
});
});
};
ログイン方法:
public login() {
// Call the show method to display the widget.
this.lock.show({
callbackUrl: 'https://x.com',
state: this._router.url
});
};
おかげで、今で動作します:) – ganjan