web-dev-qa-db-ja.com

Angularjsは認証ヘッダーを設定します

リクエストに認証ヘッダーを挿入しようとしていますが、機能しません。

私はこれを使用しています:

var config = {headers: {
  'Authorization': token
  }
};
return $http.get('http://localhost:3000/apis/users/all', config);

また、私はこれを試しました:

$http.defaults.headers.common['Authorization'] = token;

しかし、どちらの場合でも、バックエンドリクエストでこのヘッダーを取得しました。

Accept:*/*
Accept-Encoding:gzip, deflate, sdch
Accept-Language:es-ES,es;q=0.8,ca;q=0.6,en;q=0.4,gl;q=0.2
Access-Control-Request-Headers:accept, authorization
Access-Control-Request-Method:GET
Connection:keep-alive
Host:localhost:3000
Origin:http://localhost:8000
Referer:http://localhost:8000/
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_4)         AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.85 Safari/537.36

次のようなものが必要です。

Authorization: token

しかし、私はこれを得ました:

Access-Control-Request-Headers:accept, authorization

そして、トークンの値はどこにもありません。

バックエンドにexpressjsを使用しており、CORSにこれを使用しています。

app.use(function(req, res, next) {
    res.header('Access-Control-Allow-Origin', '*');
    res.header('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept, Authorization');
    next();
  });

また、chrome拡張Advance Rest Clientを使用したテストは正常に機能しています。リクエストヘッダーにはAuthorization:valueOfToken ..

どうもありがとう。

9
PacoRampas

承認は単純ではありません。

BasicまたはBearer認証の天気を指定します

何かのようなもの

$http.defaults.headers.common['Authorization'] = 'Basic ' + token;

または

$http.defaults.headers.common['Authorization'] = 'Bearer ' + token;
17
maddygoround

私はこれと同じ問題を抱えていましたが、問題はサーバー側のApache構成に関係していることが判明しました。ここであなたに役立つかもしれないことがわかった1つのことは、承認トークンがメインリクエストではなくpreflightリクエストヘッダーで送信されるため、リクエストのヘッダーに表示されない可能性があることです開発者ツールでそれを見るとき。

私はこのようにデフォルトを設定しています:

app.config(function($httpProvider) {
    $httpProvider.defaults.common['Authorization'] = token;
    // For angular 1.5, use:  
    // $httpProvider.defaults.headers.common['Authorization'] = token;        
});
3
kfhohn

これを試して:

$http({

url : "127.0.0.1/login",
method : 'GET',
headers : {
      Content-Type : 'application/json',    
      Authorization: token
      }
}).success(function(data){
    alert("login Successfully");
}).error(function(error){
    alert("login error");
})
2
Sandeep