我是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'));
}