Laravel API с использованием паспортной аутентификации: проверьте, есть ли учетная запись в данный момент вошли в систему - PullRequest
0 голосов
/ 09 мая 2019

Я разработал API, который собирает необработанные данные пользователя. Это следующие данные

ACNo: 5,
name: John Doe,
datetime: "2019-04-07 08:28:00",
state: C/In,
deviceID: 12345678910,
status: saved

Но перед этим данные смогут успешно вставляться в мою базу данных. API должен проверить, какую учетную запись он использует для загрузки данных. Поэтому я создал еще один API для своего логина, который сохраняет токен пользователя с датой истечения срока действия в моей базе данных с использованием паспортной аутентификации в laravel.

Мне интересно, как я могу проверить, есть ли в настоящее время аутентифицированная учетная запись, позволяющая вставлять данные в мою базу данных. Если нет аутентифицированной учетной записи, необходимо сначала войти в систему.

Вот мой код для входа:

    public function login(Request $request){
    $request->validate([
        'email'=>'required',
        'password'=>'required'
    ]);



    $user = User::where('email',$request->email)->first();
    if(!$user){
        return response(['status'=>'error','message'=>'User not found']);
    }
    if(Hash::check($request->password, $user->password)){
        $http = new Client;

        $response = $http->post(url('oauth/token'), [
            'form_params' => [
                'grant_type' => 'password',
                'client_id' => '2',
                'client_secret' => 'tZ7E9YiCamCHec07TccW41UbHWB8jaFXi8Py3BgM',
                'username' => $request->email,
                'password' => $request->password,
                'scope' => '',
            ],
        ]);


        // return response(['data'=>json_decode((string) $response->getBody(), true)]);
        return response(['Status'=>'Successfully Login']);
    }else{
        return response(['status'=>'error','message'=>'Incorrect username/password!']);
    }

}

Вот мои данные для вставки: это следует проверить, если есть учетная запись, которая вошла в систему. Этот код должен позволять вставлять данные в мою базу данных

public function timekeeping(Request $request){
    $validatedData = $request->validate([
        'ACNo'=>'required', 
        'name'=>'required',
        'datetime'=>'required', 
        'state'=>'required', 
        'deviceID'=>'required', 
        'status'=>'required' 
    ]);

     $DTR = new DateTimeAPI;
     $DTR->ACNo = $request->ACNo; 
     $DTR->name = $request->name;
     $DTR->email = $request->email;
     $DTR->apiKey ="NONE";
     $DTR->datetime = $request->datetime; 
     $DTR->state = $request->state;
     $DTR->deviceID = $request->deviceID; 
     $DTR->status = $request->status;
     $DTR->save();
      return response(['status'=>'ok','message'=>'Upload Success']);
    }
...