【问题标题】:Laravel api routes not working, it's always redirectingLaravel api路由不起作用,它总是重定向
【发布时间】:2020-11-13 00:39:56
【问题描述】:

我在使用 laravel 做我的后端 Api 时遇到问题。 我想要做的是使用 Auth::user(); 返回记录的用户数据。 我在 api.php 中编写了控制器,控制器方法的路由,但是当我尝试转到 /api/route 时,我被重定向到 Home。

我还尝试从控制器中删除 __construct() 方法,当我这样做并尝试转到 /api/route 时,dd($user) 返回 null。

我的控制器:

namespace App\Http\Controllers\API;

use App\Http\Controllers\Controller;
use Illuminate\Http\Request;

use App\Http\Resources\TeacherResource;
use Illuminate\Support\Facades\Auth;

class teacherApiController extends Controller
{

    public function __construct(){
        $this->middleware('auth');
    }


    public function information(){
        $user = Auth::user();
        dd($user);
    }
}

API.php

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;

Route::middleware('auth:api')->get('/user', function (Request $request) {
    return $request->user();
});

Route::get('information', 'API\teacherApiController@information');

我做错了什么? 我正在为注册和登录用户使用 laravel 身份验证。

【问题讨论】:

    标签: laravel api controller routes


    【解决方案1】:

    我想你在调用这条路由之前没有经过身份验证,这就是为什么当 __construct 在那里时它会将你重定向到家,这也是Auth::user() 返回你 null 的原因。 在调用此路由之前,您可能未经过身份验证。

    要管理您使用 laravel 护照甚至使用 JWT 的身份验证

    【讨论】:

    • 在我尝试使用 api/信息之前,我登录了一个帐户。 passaport 和 JWT 是什么?它的工作原理和用途是什么?
    • API 通常使用令牌对用户进行身份验证,并且不维护请求之间的会话状态。因此,您必须通过这些层才能对您进行身份验证,它们将为您提供一个令牌来识别您的每个用户。
    • JWT 认证的精彩视频:youtube.com/watch?v=6eX9Pj-GhZs
    • Humnn,所以这就是重定向发生的原因。 Beeing 登录不足以在 api 中进行身份验证,我需要使用令牌(passaport 和 JWT)提供某种身份验证。我会搜索并看到视频!谢谢!
    • 我正确地关注了这个视频和下一个视频,youtube.com/…,页面 api 路由仍然重定向我。我不想使用令牌和身份验证,就像这个视频一样,因为我害怕将人们令牌保存在 localStorage 或其他东西中
    猜你喜欢
    • 1970-01-01
    • 2015-09-03
    • 2018-12-27
    • 2019-12-15
    • 2013-01-15
    • 2015-08-10
    • 2020-07-09
    • 2018-07-22
    • 2016-04-21
    相关资源
    最近更新 更多