我在拉维5.2做项目。对于身份验证,我使用的是来自laravel 5.2的api令牌身份验证。我引用了https://gistlog.co/JacobBennett/090369fbab0b31130b51我的代码看起来像,
routes.php路径
Route::post('login/','UserController@login');
Route::group(['prefix' => 'api/v1', 'middleware' => 'auth:api'], function () {
Route::get('/', function () {
return "Hi";
});
});
在usercontroller.php中,我做了如下简单登录,
public function login(Request $request){
$email = $request->input('email');
$user = DB::table('users')->where('email',$email)->first();
return $user->api_token;
}
我正在使用postman,首先我登录了它,它从表中返回了正确的api_令牌,但是当我试图访问中间件中的url时,它会抛出一个错误页面,如下所示:
Sorry, the page you are looking for could not be found.
1/1
NotFoundHttpException in RouteCollection.php line 161:
我试过了,
本地主机:8888/以及
本地主机:8888/api_token=6cnusiklmwhxyqnfauhutdwee707gju2nm2j1kwjn80nfgmajhgxuadn3bx
但仍然显示相同的错误页。
最佳答案
在routes.php中尝试更改此代码的route/:
Route::post('login/','UserController@login');
Route::group(['prefix' => 'api/v1', 'middleware' => 'auth:api'], function () {
Route::get('/', array('as'=>'api_login', 'uses' => 'UserController@api_login'));
});
在usercontroller.php中添加:
public function api_login(){
return "Hi";
}
我使用auth类,而不是api,如果我将代码放在routes.php中,它就不起作用,但是如果我将相同的代码放在控制器和routes.php中,添加“uses”,它就会起作用。
我希望这对你也有用。
祝你好运!
关于php - 在Laravel 5.2中使用基于api_token的身份验证时出现NotFoundHttpException,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38345643/