Laravelで認証を使用するとトップページにジャンプする問題を解決
2022-01-14 18:55:01
validateなどのメソッドで検証する際、エラーになるとトップページに帰ってしまう
1.リクエストヘッダに直接
リクエストヘッダでacceptはappclication/jsonを使用し、HTTPリクエストのaccepted returnがjson形式のみとなるようにします。
2. フレームワークの関数を変更する
//vendor/laravel/framework/src/Illuminate/Foundation/Http/FormRequest.php:136
//Remove $this->getRedirectUrl() from this method
//not recommended, in general try not to modify the code of the framework
3. を使用することが推奨されます。
BaseRequest基底クラスを定義する
<?php
namespace App\Http\Requests;
use Illuminate\Contracts\Validation\Validator;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Http\Exceptions\HttpResponseException;
class BaseRequests extends FormRequest
{
/**
* validate validation failure template
* @param Validator $validator
* protected function failedValidation(Validator $validator)
{
$message = '';
foreach (json_decode(json_encode($validator->errors()),1) as $error){
$message = $error[0];
break;
}
throw (new HttpResponseException(response()-> json([
'code' => 400,
'msg' => $message,
'data' => []
])));
}
}
個人的には、この方法は一言で言うとあまり良くないと思います。
4. 私が最終的に使用した解決策
JSONリクエストでは、Acceptのheadをappliaction/jsonに指定することで解決できますが、JSONでアクセスした場合は、通常のエラーメッセージを返し、JSON以外の場合はホームページを返して、ある程度の保護も兼ねています。
この記事は、Laravelは、ホームページのソリューションにジャンプする検証を使用して、ここで紹介されている、より関連するLaravelの検証は、ホームページのコンテンツにジャンプするスクリプトの家の前の記事を検索してくださいまたは次の関連記事を閲覧し続けるあなたは、将来的に多くのスクリプトの家をサポートします願っています!...
関連
-
php generate unique uid solution 詳細
-
WeChatの小さなプログラムは、ログイン後に携帯電話番号を取得するためにThinkPHP5の承認と組み合わせます。
-
thinkphp6でmysqlの悲観的ロックを使って商品の売れ残り問題を解決するための実装
-
Thinkphpが無効化された機能をバイパスするプロジェクト
-
学生の成績を取得するためのPHPメソッド
-
AliCloudのossファイルアップロード機能をlaravelで実装した例
-
オンデマンドアップロードを実現するLaravelフレームワーク Aliyun機能
-
PHPにおける=>と->と::記号の使用法
-
laravelのユーザーのパスワード変更とメールボックスの結合の詳細操作
-
PHPで配列をトラバースする6つの方法まとめ
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン