在laravel 5.2

时间:2016-07-13 07:50:21

标签: php laravel laravel-5.2

我在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

但它仍显示相同的错误页面。

2 个答案:

答案 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无效时。