2016-11-12 12 views
1

からPHPバックエンドでは無視されます認証ヘッダーは、私は次のコードで私のイオン2のアプリからの認証ヘッダーを送信しようとしています角度2 HTTP GETリクエスト

$headers = getallheaders(); 
file_put_contents("headers.txt", print_r($headers, true)); 

とfollwingます出力:

Array 
(
    [Host] => xxx 
    [Connection] => close 
    [Access-Control-Request-Method] => GET 
    [Origin] => http://localhost:8100 
    [User-Agent] => Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko$ 
    [Access-Control-Request-Headers] => authorization 
    [Accept] => */* 
    [Referer] => http://localhost:8100/ 
    [Accept-Encoding] => gzip, deflate, sdch 
    [Accept-Language] => de-DE,de;q=0.8,en-US;q=0.6,en;q=0.4 
) 

私はすでに追加されているが、.Hするには、以下のtaccess:私は郵便配達してAPIに接続すると

RewriteCond %{HTTP:Authorization} ^(.+) 
RewriteRule ^(.*)$ $1 [E=HTTP_AUTHORIZATION:%1,PT] 

認証ヘッダーが存在している:

Array 
(
    [Authorization] => Bearer test_token 
    [Host] => xxx 
    [Connection] => close 
    [Cache-Control] => no-cache 
    [User-Agent] => Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.$ 
    [Postman-Token] => 9b51b6fe-2c24-564c-9998-1acb5b02136e 
    [Accept] => */* 
    [Accept-Encoding] => gzip, deflate, sdch 
    [Accept-Language] => de-DE,de;q=0.8,en-US;q=0.6,en;q=0.4 
    [Cookie] => PHPSESSID=uiboq2m0isfgb16kfrr9dtbji1 
) 

は、私がここで何をしないのですか?

編集:のlocalStorageを設定

コード:

ログインからの応答に問題はありません。ユーザーとトークンはローカルストアに設定されます

login(username, password) { 
     return this.http.post(this.baseUrl, JSON.stringify({ username: username, password: password })) 
      .map((response: Response) => { 
       let user = response.json(); 
       if (user && user.token) { 
        localStorage.setItem('currentUser', JSON.stringify(user)); 
       } 
      }); 
    } 
+0

トークンを 'localstorage'に設定しましたか?それに関連するコードを投稿できますか? – Michael

+0

私は自分のコードatmにアクセスできません。しかし、あなたが知りたいのであれば、if条件が満たされれば、console.log(ヘッダー)の出力としてこれを確認できます。私に正しいヘッダーが表示されます。 – Casius

+0

localstorageが設定されているコードを追加しました – Casius

答えて

0

最終的に解決策が見つかりました。 問題は、私がエラー応答を誤解していたことでした。角度からのHTTPリクエストは、バックエンドからの401応答で拒否されたプリフライトを送信しています。実際の要求は決して送信されませんでした。私が上に投稿したヘッダは、プリフライトのヘッダーなので、何も認可されていません。プリフライトに適切に応答するためにバックエンドを変更した後、承認ヘッダを含む要求が送信されます。

関連する問題