首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel "message":"","exception":"Symfony\\Component\\HttpKernel\\Exception\\NotFoundHttpException",“文件”:

Laravel "message":"","exception":"Symfony\\Component\\HttpKernel\\Exception\\NotFoundHttpException",“文件”:
EN

Stack Overflow用户
提问于 2020-04-24 01:27:58
回答 1查看 3K关注 0票数 1

我正在使用Laravel 7,并且我已经安装了passport作为依赖项。当我发出登录/注册请求时,它会失败,并显示以下错误

代码语言:javascript
复制
{ "message": "", "exception": "Symfony\\Component\\HttpKernel\\Exception\\NotFoundHttpException", "file": ".../vendor/laravel/framework/src/Illuminate/Routing/AbstractRouteCollection.php", "line": 43, "trace": [ { "file": "/Users/macbookpro/.../vendor/laravel/framework/src/Illuminate/Routing/RouteCollection.php", "line": 162,...

我的路线看起来像这样:

代码语言:javascript
复制
<?php

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


Route::post('api/v1/login', 'API\UserController@login');
Route::post('api/v1/register', 'API\UserController@register');
Route::group(['middleware' => 'auth:api'], function(){
//Route::post('details', 'API\UserController@details');
});

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

我的控制器看起来像这样:

代码语言:javascript
复制
namespace App\Http\Controllers;

use Illuminate\Http\Request;

class UserController extends Controller
{
    
    public $successStatus = 200;
    
    public function login(Request $request){ 
        //dd('hello');
        return response()->json(['error'=> 'Mike'], 500);
        if(Auth::attempt(['email' => request('email'), 'password' => request('password')])){ 
            $user = Auth::user(); 
            //$email = request
            $success['token'] =  $user->createToken('MyApp')-> accessToken; 
            return response()->json(['success' => $success], $this-> successStatus); 
        } 
        else{ 
            return response()->json(['error'=>'Unauthorised'], 401); 
        } 
    }

    public function register(Request $request) 
    { 
        $validator = Validator::make($request->all(), [ 
            'name' => 'required', 
            'email' => 'required|email', 
            'password' => 'required', 
            'c_password' => 'required|same:password', 
        ]);
if ($validator->fails()) { 
            return response()->json(['error'=>$validator->errors()], 401);            
        }
$input = $request->all(); 
        $input['password'] = bcrypt($input['password']); 
        $user = User::create($input); 
        $success['token'] =  $user->createToken('MyApp')-> accessToken; 
        $success['name'] =  $user->name;
return response()->json(['success'=>$success], $this-> successStatus); 
    }
    
...    

这是我通过邮递员的"POST“请求:

代码语言:javascript
复制
http://localhost:8000/api/v1/login?email=test1@mail.com&password=password

当我像这样更改我的路由配置时:

代码语言:javascript
复制
Route::post('api/v1/login',  dd('hello'));

我在邮递员上收到了相应的“你好”。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-26 13:13:27

我终于找到了问题的原因。在默认情况下,laravel/passport对api.php文件中的路由使用"api“。这些路由应该是这样的:

代码语言:javascript
复制
...

Route::post('v1/login', 'API\UserController@login');
Route::post('v1/register', 'API\UserController@register');

...

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61393360

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档