POSTMANを使用して、Authorizationを含むヘッダーと共にGETリクエストをAPIに送信しています。
ルートが401エラーを返すため、データヘッダーが機能しないことを知っています。
Authorizationヘッダーを次のように取得したかったのです。
$access_token = Request::header('Authorization');
しかし、NULLを返すことに注意してください。
だから私は値をキャッチしようとしました:
die(var_dump(Request::header()));
また、Authorizationヘッダーが含まれていないことに気付きました。 Cookieヘッダーをホストするだけです。
更新
Authorization: Bearer ACCESS TOKEN
どのPOSTMANバージョンを使用しましたか?
ローカルマシンまたは管理対象サーバーを使用していますか、一部のホスティング会社はAUTHORIZATION HEADERを許可していません。
。htaccessの変更
RewriteEngine On
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
Dschnieppからの答えは正しいですが、これにも問題があります。次の2つのことを行う必要があります。
最初のポイントでは、「mod_rewrite」モジュールが別のphpファイルのphp_info関数で利用可能かどうかを確認する必要があります。それが利用可能な場合は、Webサーバーの構成に応じてアクティブにする必要があります.Nitrousボックスでhttpd.confファイルに次の行を追加しました:
<IfModule mod_rewrite>
RewriteEngine On
</IfModule>
または、.htaccessファイルのモジュールもアクティブ化できます。
RewriteEngine On
次に、laravelアプリのルートにあるパブリックフォルダーにある同じ.htaccessファイルで、次の行を追加する必要があります。
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule .* - [e=HTTP_AUTHORIZATION:%1]
これらの行は私のために働いた。 .htaccessファイルは次のようになります。
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule .* - [e=HTTP_AUTHORIZATION:%1]
# Redirect Trailing Slashes...
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
それだけです。Request:: header()配列にAuthorizationヘッダーが必要です。これらを明確にすることは、Apacheの問題であり、Laravel自体の問題ではありません。
Laravel 5.5では、Apache_request_headersを使用して遊牧民を読むことができます。次の行でコントローラで読むだけです
$headers = Apache_request_headers();
dd($headers['Authorization']);
必ずIlluminate\Http\Requestを使用して追加してください。あなたのコントローラーで
私の問題を解決したので、これをここに投稿しました。これはサブドメインに適用されますが、プレーンドメインでも同様に調整できます。これを上部の私のroutesファイル内で適用しました。
$newUrl = '';
try{
$urlParts = parse_url($_SERVER['HTTP_REFERER']) ?? '';
$newUrl = $urlParts['scheme'] . "://" . $urlParts['Host'];
if(!stristr($newUrl, '.yourdomain.com')){
$newUrl = 'false';
}
}catch(Exception $e)
{}
header('Access-Control-Allow-Origin: ' . $newUrl);
header('Access-Control-Allow-Credentials: true');
header('Access-Control-Allow-Headers: access-control-allow-Origin,cache-control,content-type,postman-token');