【发布时间】:2018-05-02 21:18:36
【问题描述】:
我正在使用 Laravel 5.5 和最新的护照。
我尝试通过护照保护我的 api,并使用官方 laravel 文档实现它。
首先,我收到一个承载令牌,其中包含对 .../auth/token 的 api 调用。 然后我尝试通过邮递员发出这个获取请求: 头:
X-CSRF-TOKEN: zkmOKxFxGSG75QdZjuhHJkwUJ18FkHWm3OUxzZ8j
X-Requested-With: XMLHttpRequest
Accept: application/json
Authorization: Bearer bearer-token
我总是得到以下答案: 状态:401:未授权
{
"error": "Unauthenticated."
}
我不知道如何处理。 在我的 .htaccess 中:
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
</IfModule>
编辑: 我将 Laravel 升级到 v. 5.5
【问题讨论】:
-
从哪里得到
zkmOKxFxGSG75QdZjuhHJkwUJ18FkHWm3OUxzZ8j?这是你打电话给/auth/token得到的Bearer-Token吗? -
我将“”添加到我的网站并复制了它。
-
如果您在
api.php文件中定义您的路线,那么您根本不需要csrf-token。您只需在Authorization标头中发送令牌。用实际令牌替换bearer-token吗? -
好的。这是一次尝试,我在这里找到了一些答案。今天生成了带有 Bearer Token 的 Authorization-Header。
标签: php laravel laravel-passport