Laravel Passport Api Token используется для клиентской стороны - PullRequest
0 голосов
/ 27 октября 2018

У меня мало знаний о API паспортов Laravel, я создал API для Android, но никогда не использовал его в Интернете (на стороне клиента). Я немного запутался, как использовать его с веб-маршрутами. Это означает, что я создал API для входа в систему, чтобы войти в систему.user на основании своей роли.

public function login(Request $request)
{

    $rules = array(
        'email' => 'required',
        'password' => 'required',

    );
    $messages = array();
    $validator = Validator::make($request->all(), $rules, $messages);

    if ($validator->fails()) {
        return [
            'status' => 204,
            'message' => $validator->errors()->first()
        ];
    }

    $user = User::where('email', $request->email)->first();
    if (!$user) {
        return response(['status' => 204, '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' => 'oWXBChJA8TUItWnvZ3J52KNhGMqsPkEqpDyhjnNf',
                'username' => $request->email,
                'password' => $request->password,
                'scope' => '',
            ],
        ]);
        $getVerifyStatus = AppStatus::where('id', $user->profile_verify_status_id)->value('name');


        if ($getVerifyStatus == 'verified') {
            return response(['status' => 200, 'message' => 'Sign In Successfully','auth' => json_decode((string)$response->getBody(), true), 'user' => $user]);

        }
        else {
            return response(['message' => 'Profile Not Verified', 'status' => 204]);
        }
    }
    else {
        return response(['message' => 'Password Not Match', 'status' => 204]);
    }

}

он отвечает мне полной информацией о входе пользователя в систему с помощью access_token, теперь я использую этот API в моем клиентском проекте, вот код

public function loginShipper()
{
    return view('login');
}

public function login()
{

    $validator = Validator::make(
        array(
            'email' => $_POST['email'],
            'password' => $_POST['password']
        ),

        array(
            'email' => 'required',
            'password' => 'required'
        )
    );

    if ($validator->fails()) {
        $messages = $validator->messages();
        return redirect('/')->with('message', $messages);
    }
    else
    {
        //  $u_password = (Hash::check();

        $url = 'http://localhost:81/mvp/api/shipper/login';
        $myvars = 'email=' . $_POST['email'] . '&password=' . $_POST['password']  . '&created_at=' . '';


        $ch = curl_init($url);
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $myvars);
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
        curl_setopt($ch, CURLOPT_HEADER, 0);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        $response = curl_exec($ch);
        curl_close($ch);

        $json_response = json_decode($response);

        // print_r($json_response);
        // exit();

        $user = User::where(array('email' => $_POST['email']))->first();



        if ($user) {

            Session::put('user_id', $user->id);

            Session::put('email', $user->email);

            Session::put('access_token', $json_response->auth->access_token);

            Session::save();
            return Redirect::route('brokers');
            //$messages = $validator->messages();
            // return redirect('/')->with('message', $messages);
        }

означает, что при входе в систему он перенаправляет маршрут брокера, но если я использовал auth: веб-промежуточное ПО в веб-маршруте, он перенаправляет меня на страницу входа, но если я удаляю промежуточное программное обеспечение авторизации, он перенаправляет меня на страницу брокера, но затем пользователь не проходит аутентификацию, посколькуAuth :: user () отправляет мне ноль.я много искал после того, как отправлю этот вопрос.надеюсь, вы понимаете мой вопрос.

...