После публикации вопроса Lumen + Dingo + JWT не работает, строя вокруг Lumen и Dingo здесь, в SO. Я получил подробный ответ о том, как настроить такую систему.
В его настройке есть небольшой пример проверки подлинности, в котором используется Eloquent. Теперь мы загружаем пользовательскую структуру в Lumen, у которой есть свои собственные модели и т. Д., И имеет собственное соединение с базой данных и т. Д.
Я не могу понять, как полностью удалить Eloquent и выполнить аутентификацию, используя нашу собственную инфраструктуру.
Что я сделал до сих пор:
$app->withEloquent();
из нашего bootstrap\app.php
Другие изменения Я считаю, что нужно сделать редактирование config\auth.php
или даже полностью удалить этот файл. Я не уверен.
Наконец, в App\Api\v1\Controllers\AuthController@postLogin
выполняется вызов функции validate
. Эта функция должна связываться с моей картой, а не через Eloquent. Как это делается аккуратно в Люмене, я тоже не уверен.
Git repo: https://github.com/krisanalfa/lumen-dingo
Вы можете это прочитать. Итак, в вашем случае, в App\Api\v1\Controllers\AuthController@postLogin
:
/** * Handle a login request to the application. * * @param \Illuminate\Http\Request $request * * @return \Illuminate\Http\Response */ public function postLogin(Request $request) { try { $this->validate($request, [ 'email' => 'required|email|max:255', 'password' => 'required', ]); } catch (HttpResponseException $e) { return response()->json([ 'message' => 'invalid_auth', 'status_code' => IlluminateResponse::HTTP_BAD_REQUEST, ], IlluminateResponse::HTTP_BAD_REQUEST); } $credentials = $this->getCredentials($request); try { // Attempt to verify the credentials and create a token for the user // You may do anything you like here to get user information based on credentials given if ($user = MyFramework::validate($credentials)) { $payload = JWTFactory::make($user); $token = JWTAuth::encode($payload); } else { return response()->json([ 'message' => 'invalid_auth', 'status_code' => IlluminateResponse::HTTP_BAD_REQUEST, ], IlluminateResponse::HTTP_BAD_REQUEST); } } catch (JWTException $e) { // Something went wrong whilst attempting to encode the token return response()->json([ 'message' => 'could_not_create_token', ], IlluminateResponse::HTTP_INTERNAL_SERVER_ERROR); } // All good so return the token return response()->json([ 'message' => 'token_generated', 'token' => $token, ]); }