首页 > 解决方案 > Laravel - POSTMAN 在 POST 请求中返回 500 Internal Server Error

问题描述

我在 Laravel-5.8 中为用户登录编写了 POST 请求端点。这是文件的位置:

本地主机:8888/tsl-clientportal-app/clientportal-backend

AuthCoontroller.php

<?php
namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Carbon\Carbon;
use App\User;
use App\Notifications\SignupActivate;
use Avatar;
use Storage;

class AuthController extends Controller
{

    public function login(Request $request)
    {
        $request->validate([
            'email' => 'required|string|email',
            'password' => 'required|string',
            'remember_me' => 'boolean'
        ]);
        $credentials = request(['email', 'password']);
        $credentials['active'] = 1;
        $credentials['deleted_at'] = null;
        if(!Auth::attempt($credentials))
            return response()->json([
                'message' => 'Unauthorized'
            ], 401);
        $user = $request->user();

        $tokenResult = $user->createToken('Personal Access Token');
        $token = $tokenResult->token;
        if ($request->remember_me)
            $token->expires_at = Carbon::now()->addWeeks(13);
        $token->save();
        return response()->json([
            'access_token' => $tokenResult->accessToken,
            'token_type' => 'Bearer',
            'expires_at' => Carbon::parse($tokenResult->token->expires_at)->toDateTimeString(),
            'data'          => $user
        ], 200);
    }
}

api.php

Route::group([
    'prefix' => 'auth'
], function () {
    Route::post('login', 'AuthController@login');
    Route::post('signup', 'AuthController@signup');
    Route::get('signup/activate/{token}', 'AuthController@signupActivate');

    Route::group([
      'middleware' => 'auth:api'
    ], function() {
        Route::get('logout', 'AuthController@logout');
        Route::get('user', 'AuthController@user');
    });
});

当我在 POSTMAN 上测试请求时,我希望看到成功的结果。但是我得到了下图中显示的错误:

错误

标签: laravelpostman

解决方案


Laravel 网络路由需要在请求标头中包含“XSRF-TOKEN”,因此要在 POSTMAN 中进行测试,您应该在请求标头中的 Cookie 键中发送“XSRF-TOKEN=value”。

喜欢:如果您将会话存储在 Cookie 中,则可以从开发人员工具中的身份验证请求中获取 Cookie。 在此处输入图像描述

然后在邮递员 在此处输入图像描述

或者您在标题中的“_token”键中使用 csrf_token() 值 在此处输入图像描述


推荐阅读