Я использую token guard для аутентификации пользователей с помощью api_token, переданного в почтовом запросе. Но я не могу получить api_token с помощью защиты маркера. Я думал получить пользователя от retrieveByCredentials($credentials)
и проверить пароль с помощью validateCredentials($user, $credentials)
, которые находятся в EloquentUserProvider.php
, но для их доступа я должен использовать Auth::guard('api')->provider
, где поставщик является защищенным свойством. Поэтому я должен сделать это вручную. Есть ли простая процедура для получения api_token при входе в систему.Как получить api_token при входе пользователя в laravel 5.2
Мой метод Войти в AuthController.php
public function api_login(Request $request)
{
$validator = Validator::make($request->all(), ['email' => 'required', 'password' => 'required']);
$credentials = $this->getCredentials($request);
$user = Auth::guard('api')->provider->retrieveByCredentials($credentials);
if(is_null($user)) {
return response()->json([
'error' => [
'message' => 'Your email is not registered yet',
'status_code' => 40
]
]);
} elseif(Auth::guard('api')->provider->validateCredentials($user, $credentials)) {
return response()->json([
'success' => [
'api_token' => Auth::guard('api')->user()->api_token,
'message' => 'Login successful',
'status_code' => 200
]
]);
}
return response()->json([
'error' => [
'message' => 'Login failed',
'status_code' => 20
]
]);
}
Примечание: Я использовал провайдера, но я не могу использовать, что, как это защищенное свойство.