首页 > 解决方案 > 未经身份验证的 Laravel

问题描述

我正在使用 Laravel Passport 登录,以便稍后在 Angular 中使用此 API,我发现以下问题

当我在 Postman 中将 GET 扔到以下路径http://127.0.0.1:8000/api/tramites并带有 Accept: application / json headers 和我的 Authorization token: Bearer xxxx 它返回给我

“消息”:“未经身份验证。”

我不明白为什么会发生这种情况,因为我正在传递生成的用户令牌,它必须访问。

api.php

Route::group(['middleware' => 'auth:api'], function(){
Route::ApiResource('tramites', 'TramiteController');});

PersonaController.php

public function login(Request $request)
    {
        $persona = Persona::whereUsuario($request->Usuario)->first();
        if(!is_null($persona) && ($request->Contrasena == $persona->Contrasena))
        {
            
            $persona->App_Id = Str::random(100);
            $persona->save();

            return response()->json([
                'res' => true,
                'token' => $persona->App_Id,
                'message' => 'Login succesfully'
            ], 200);
        }
        else{
            return response()->json([
                'res' => false,
                'message' => 'Login wrong'
            ], 400);
        }
        
    }

标签: phplaravelapilaravel-passport

解决方案


检查你的 .htaccess 文件是否有这个指令:

RewriteRule ^ - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

我有一个类似的问题:Laravel sanctum unauthenticated


推荐阅读