错误:“未经身份验证。”拉拉维尔
Posted
技术标签:
【中文标题】错误:“未经身份验证。”拉拉维尔【英文标题】:error: "Unauthenticated." Laravel 【发布时间】:2017-10-22 13:20:27 【问题描述】:所以我试图将用户的 id 存储在 user_id 中,但 laravel 给出了错误:
错误:“未经身份验证。”
当我的用户在我的后台登录时。
这是我的 routesApi.php
Auth::routes();
Route::group([
'namespace' => 'Api',
'prefix' => 'api/v1',
'middleware' => 'web'
], function ()
$options = [
'except' => [
'create',
'edit',
]
];
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: POST, GET, OPTIONS, PUT, DELETE');
header('Access-Control-Allow-Headers: Content-Type, X-Auth-Token, Origin, Authorization, X-CSRF-TOKEN ');
Route::middleware('auth')->post('optionelections', function (Request $request)
return $request->user();
);
);
这是我的商店在我的控制器中的功能:
public function store(Request $request)
$optionElection = new OptionElection();
$optionElection->user_id = Auth::id();
$optionElection->option = Auth::name();
$optionElection->votes = 0;
$optionElection->election_id = $request['election_id'];
$optionElection->accepted = 0;
if ($optionElection->save())
return response()
->json($optionElection);
【问题讨论】:
【参考方案1】:web
中间件组实现了VerifyCSRFToken
中间件。这要求对该中间件组内每个路由的每个请求都传递一个token
。
您的请求中缺少令牌。
如果这是一个标准的 html 表单,那么只需在其中添加以下内容:
csrf_field()
如果这是一个 ajax 请求,您可以使用以下内容:
token: window.Laravel.csrfToken
如果未设置,则将其添加到布局模板的头部:
<script>
window.Laravel =
csrfToken: 'csrf_token()'
</script>
【讨论】:
【参考方案2】:我发现您忘记从 CSRF 保护中排除 URI。
这应该可以节省您的时间:
protected $except = [
'stripe/*',
];
【讨论】:
以上是关于错误:“未经身份验证。”拉拉维尔的主要内容,如果未能解决你的问题,请参考以下文章
Laravel 5.3 + Passport:总是未经身份验证的错误