Есть ли способ ограничить доступ к паспорту api маяка только для моего приложения-флаттера - PullRequest
0 голосов
/ 07 ноября 2019

Я работаю над проектом 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.

  1. , как я могу сделать так, чтобы некоторые из моих маршрутов API реагировали только на мое мобильное приложение для первой стороны (flutter: android & iOs) и только некоторые сторонние поставщики?
  2. Как проверить срок действия токенов пользователей и как их обновить?
  3. Можно ли использовать client_id и client-secret key из моего мобильного приложения? и в каких случаях мы должны их использовать?
  4. что означают следующие таблицы Oauth? oauth_access_tokens oauth_auth_codes, oauth_clients, oauth_personal_access_clients
  5. Как я могу управлять состоянием сеанса пользователя, вошедшего в систему / вышедшего из системы (подключен / отключен), когда пользователь подключается к моему мобильному приложению (через API) или к моему веб-интерфейсу, и как я могу проверить и сделатьдругие пользователи знают, что определенный пользователь подключен / нет (если он связан с моим мобильным приложением (vai api))?
  6. Используется ли в следующем коде параметр («Имя приложения») как «Laravel»Password Grant Client "$user->createToken('Laravel Password Grant Client')->accessToken; что-то значит (например, означает, что мы нацелены на определенного клиента или что?) Или ничего не программно?

я думаю, что OAuth2.0 - это целый стандарт, который требует больше времени для обработки.

...