【问题标题】:Laravel - POSTMAN is returning 500 Internal Server Error on POST RequestLaravel - POSTMAN 在 POST 请求上返回 500 Internal Server Error
【发布时间】:2020-01-11 01:52:12
【问题描述】:

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

localhost: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 上测试请求时,我希望看到成功的结果。但是我得到了下图所示的错误:

error

【问题讨论】:

  • 尝试以json格式发送数据。
  • @farooq - 我该怎么做?
  • 你在 laravel 错误日志中得到任何错误吗? storage/logs/laravel.log
  • @rypskar - 不,我没有看到任何错误
  • 您是否也检查了您的网络服务器日志?

标签: laravel postman


【解决方案1】:

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

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

然后在邮递员中

或者您在标题中的“_token”键中使用 csrf_token() 值

【讨论】:

  • 我该怎么做?
【解决方案2】:

一般来说(不限于这个问题)它可能有很多原因,最常见的是your connection to your db is disable。

例如在 xampp 中你应该启动 Mysql 或其他 dbs...

是的。它太简单但最常见的错误:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-09-15
    • 2019-12-12
    • 2016-05-30
    • 2019-03-20
    • 2020-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多