2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Laravel:バリデーションで403エラー(フォームリクエストを使用している場合)

Posted at

フォームリクエストでのバリエーションを使用してPOSTした際にエラーが発生した。

403エラー発生

"THIS ACTION IS UNAUTHORIZED."
「権限がありません」とのこと。

原因

フォームリクエストのauthorizeメソッドがfalseのままだった。

app/Http/Requests/RecordPostRequest.php
    public function authorize()
    {
        return false;
    }

解決策

これをtrueに変えればOK。

app/Http/Requests/RecordPostRequest.php
    public function authorize()
    {
        return true;
    }

authorizeメソッドとは

Laravelにより生成される各フォームリクエストには、authorizeとrulesの2つのメソッドがあります。

ご想像のとおり、authorizeメソッドは、現在認証されているユーザーがリクエストによって表されるアクションを実行できるかどうかを判断し、rulesメソッドはリクエスト中のデータを検証するバリデーションルールを返します。

authorizeメソッドがfalseを返すと、403ステータスコードのHTTPレスポンスを自動的に返し、コントローラメソッドは実行しません。
アプリケーションの別の部分でリクエストの認可ロジックを処理する場合は、authorizeメソッドからtrueを返してください。(すべて公式ドキュメントより)

2
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?