我在laravel 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;
}
我正在使用邮递员,首先我登录并从表中返回正确的api_token但是当我尝试访问中间件中的URL时,它会抛出错误页面,
Sorry, the page you are looking for could not be found.
1/1
NotFoundHttpException in RouteCollection.php line 161:
我试过了, localhost:8888 /以及
本地主机:8888 / api_token = 6CnUsIKlmwHXYQNFAuhUTDweUe707gJU2nM2j1Kwjn80nFgmaJHGXuAdN3BX
但它仍显示相同的错误页面。
答案 0 :(得分:0)
尝试在Routes.php中更改您的路线/此代码:
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中它不起作用,但如果我在Controller中放入相同的代码并在我的Routes.php中添加'uses',它有效。
我希望它也适合你。
祝你好运!
答案 1 :(得分:0)
如果它有助于搜索这个问题的任何人,我遇到了同样的问题,经过几个小时的玩游戏意识到这是因为我的数据库中没有api_tokens,一旦我添加它就很好,只是奇怪的行为它给出了404当api_token无效时。