0

ユーザー プロファイルを読み取ることができ、Angular 2 アプリケーションで Auth0 からユーザー メタ データを更新できます。このように

 this.lock.getProfile(authResult.idToken, (error, profile) => {
        if (error) {
          // Handle error
          alert(error);
          return;
        }

this.authHttp
      .patch('https://' + myConfig.domain + '/api/v2/users/' + this.auth.userProfile.user_id, data, {headers: headers})
      .map(response => response.json())
      .subscribe(
        response => {
          this.auth.userProfile = response;
          localStorage.setItem('profile', JSON.stringify(response));
          this.router.navigate(['/profile']);
        },
        error => alert(error.json().message)
      );

しかし、すべてのユーザーがエラーを取得しようとしている間-"Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:3000' is therefore not allowed access. The response had HTTP status code 404." ここに画像の説明を入力

これがコードです

var headers: any = {
      "Content-Type": "application/json; charset=utf-8",
      "cache-control": "no-cache"
    };
    this.authHttp
          .get('https://' + myConfig.domain + '/api/v2/users/' + '?per_page=100&page=0&search_engine=v2', { headers: headers })
          .map(response => response.json())
          .subscribe(
          response => {
            console.log(response);
          },
          error => alert(error.json().message)
          );

Web サイトでクライアント テストが正常に動作している場所 https://auth0.com/docs/api/management/v2#!/Users/get_users ここに画像の説明を入力 何が問題なのかわかりません。

Access-Control-Allow-Origin のヘッダーにも同じ問題があります

var headers: any = {
      "Content-Type": "application/json; charset=utf-8",
      "cache-control": "no-cache",
       "Access-Control-Allow-Origin": "*"
    };

ここに画像の説明を入力 ここに画像の説明を入力

4

3 に答える 3

0

問題は、CORS プリフライト リクエストが発行されない場合でも、リクエストが失敗することです。これを示す重要な部分は、プリフライト リクエストへの応答が2XX範囲内にないことです。

プリフライトで応答を取得していますが404、CORS にバインドされていないアプリケーションから同じ要求を行うと、404.

呼び出そうとしているエンドポイントの正しいアドレスは次のとおりです。

https://[AUTH0_ACCOUNT]/api/v2/users

その代わりに、次のように呼び出しています。

https://[AUTH0_ACCOUNT]/api/v2/users/

末尾の余分なスラッシュを削除する必要があります


ただし、これにより 404 問題は修正されますが、根本的な問題は修正されません... Auth0 管理 API は、クライアント認証を通じて必要なアクセス トークンを取得できるサーバー側アプリケーションによって使用されることを意図しています。

リファレンスについては、Auth0 管理 APIv2 トークンを参照してください。

PATCH ユーザー エンドポイントが機能する理由は、このエンドポイントが 1 人のユーザーにのみ影響し、CORS が許可されていることが原因である可能性があります。

于 2016-12-21T09:15:38.207 に答える
0

実際、あなたは を試しているので、バックエンドlocalhostに追加する必要があります:header

 .header("Access-Control-Allow-Origin", "*")

この助けを願っています。

于 2016-12-20T17:39:02.603 に答える