Я работаю над проектом laravel 6 с веб-доступом и паспортом Oauth2 api-доступа через мобильное приложение-флаттер (android / iOs), и у меня возникают некоторые проблемы с этим, не могли бы вы дать некоторые разъяснения по поводу моих следующих вопросов
Итак, я нацеливаю свои API-маршруты с помощью почтальона или моего мобильного приложения. Я использую методы API регистрации / входа, для которых требуются электронная почта и пароль (не используются client_id и / или client_secret) такого пользователя, как этот код из контроллера API
public function register(Request $request) {
$validator = Validator::make($request->all(),
[
'name' => 'required',
'email' => 'required|email',
'password' => 'required',
'c_password' => 'required|same:password',
]);
if ($validator->fails()) {
return response()->json(['error'=>$validator->errors()], 401);
}
$input = $request->all();
$input['password'] = bcrypt($input['password']);
$user = User::create($input);
$success['token'] = $user->createToken('Laravel Password Grant Client')->accessToken;
return response()->json(['success'=>$success], $this->successStatus);
}
Метод входа
public function login(){
if(Auth::attempt(['email' => request('email'), 'password' => request('password')])){
$user = Auth::user();
$success['token'] = $user->createToken('Laravel Personal Access Client')->accessToken;
return response()->json(['success' => $success], $this->successStatus);
} else{
return response()->json(['error'=>'Unauthorised- FOR -'.request('email').'---'.request('password')], 401);
}
}
Эти два метода возвращают только access_token без refresh_token и (как ни странно) я могу использовать этот токен с для каждого пользователя в моем приложении аутентификация и дает данные из auth: api без каких-либо ошибок, мне интересно что называется этим методом? , потому чтоэто не похоже на все Grant_types, которые я обнаружил, прибегая к помощи OAuth2.0.
- , как я могу сделать так, чтобы некоторые из моих маршрутов API реагировали только на мое мобильное приложение для первой стороны (flutter: android & iOs) и только некоторые сторонние поставщики?
- Как проверить срок действия токенов пользователей и как их обновить?
- Можно ли использовать
client_id
и client-secret key
из моего мобильного приложения? и в каких случаях мы должны их использовать? - что означают следующие таблицы Oauth?
oauth_access_tokens oauth_auth_codes, oauth_clients, oauth_personal_access_clients
- Как я могу управлять состоянием сеанса пользователя, вошедшего в систему / вышедшего из системы (подключен / отключен), когда пользователь подключается к моему мобильному приложению (через API) или к моему веб-интерфейсу, и как я могу проверить и сделатьдругие пользователи знают, что определенный пользователь подключен / нет (если он связан с моим мобильным приложением (vai api))?
- Используется ли в следующем коде параметр («Имя приложения») как «Laravel»Password Grant Client "
$user->createToken('Laravel Password Grant Client')->accessToken;
что-то значит (например, означает, что мы нацелены на определенного клиента или что?) Или ничего не программно?
я думаю, что OAuth2.0 - это целый стандарт, который требует больше времени для обработки.