在 Laravel 5.1 中请求验证失败后重定向到登录页面

Ans*_*hra 4 php validation web-services laravel-5.1

我正在为移动应用程序创建 Rest Full Api,我正在验证请求,它将我重定向到有错误的登录页面。

这是我的 ApiController(我为所有 api 创建了):

use App\User as UserModel;
use App\Fb_friend as FbFriendsModel;
use App\Http\Requests\UserRequest;

class ApiController extends Controller
{

    /**
     * Create a new movie model instance.
     *
     * @return void
     */
    public function __construct(UserModel $user, FbFriendsModel $fb_friends){
        $this->user = $user;
        $this->fb_friends = $fb_friends;
    }
    public function createUser (UserRequest $request) {
      // some code here
    }
Run Code Online (Sandbox Code Playgroud)

路线:

Route::post('createUser', ['as' => 'createUser', 'uses' => 'ApiController@createUser']);
Run Code Online (Sandbox Code Playgroud)

用户请求.php:

public function rules()
    {
        return [
            'fb_id' => 'required|unique:users',
            'username' => 'required|unique:users',
            'email' => 'required|unique:users',
            'image' => 'required',
            'device_id' => 'required',
            'status' => 'required',
        ];
    }
Run Code Online (Sandbox Code Playgroud)

我已经覆盖了一个函数 Request.php 用于错误格式:

abstract class Request extends FormRequest
{
    protected function formatErrors(Validator $validator)
    {
        return [$validator->messages()->toJson()];
    }
}
Run Code Online (Sandbox Code Playgroud)

当我尝试通过邮递员调用服务时,它以 json 格式返回错误,但它也打印登录页面,我不明白为什么?

Sha*_*war 5

如果您使用 Postman 来测试 API,则无需覆盖 Request 类中的 response(),可以按照以下步骤操作,

  1. 将自定义请求中的 authorize() 中的返回类型设为 true,

    public function authorize()
    {
       //make it true
       return true;
    }
    
    Run Code Online (Sandbox Code Playgroud)
  2. 转到 Postman 中的 headers 部分并定义 Accept 类型,

    Accept:application/json
    
    Run Code Online (Sandbox Code Playgroud)
  3. 现在点击你的 API 和 bam 的端点。对我来说工作正常。