在laravel中为JWTAuth :: attempt()设置mysql

时间:2016-05-05 07:18:28

标签: php mysql rest laravel jwt

我是laravel的新手,刚刚开始设置rest API。一切正常,但我想实现jwtAuth基本令牌认证。我按照this教程设置jwtAuth及其工作正常,但JWTAuth :: attempt()使用默认数据库,我想使用mysql及其已在database.php中设置,但仍然无法使用mysql。
这些是我使用的示例代码:

'mysql' => [
        'driver'    => 'mysql',
        'host'      => 'localhost',
        'database'  => 'db',
        'username'  => 'root',
        'password'  => '',
        'charset'   => 'utf8',
        'collation' => 'utf8_unicode_ci',
        'prefix'    => '',
        'strict'    => false,
    ],

路线就像这样设置

Route::group(['prefix' => 'api'], function() {
Route::post('login', 'Api\AuthController@login');
Route::group(['middleware' => ['jwt.auth', 'jwt.refresh']], function() {
    Route::post('logout', 'Api\AuthController@logout');
    Route::get('test', function(){
        return response()->json(['foo'=>'bar']);
    });
});

});

AuthController就是这样设置的

class AuthController extends Controller {

public function login(Request $request) {
    $credentials = $request->only('customers_email_address', 'customers_password');        
    try {           
        if (! $token = JWTAuth::attempt($credentials)) {
            return response()->json(['error' => 'invalid_credentials'], 401);
        }
    } catch (JWTException $e) {           
        return response()->json(['error' => 'could_not_create_token'], 500);
    }      
    return response()->json(compact('token'));
}

0 个答案:

没有答案