我在拉维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/

10-11 19:55
查看更多