Вход в Google с помощью laravel

#api #laravel-4 #google-plus #google-api-php-client

#API #laravel-4 #google-plus #google-api-php-client

Вопрос:

Я много боролся за вход в G с помощью laravel, я загрузил php-sdk с помощью composer. Я также использую JavaScript для входа в систему, как только пользователь входит в систему, я перенаправляю его на маршрут из JavaScript туда /gLogin?email=abc@gmail.comamp;name=John Doe , где у меня есть следующий код.

 $user_profile['email']=Input::get('email');
    $user_profile['name']=Input::get('name');

    $user_id=DB::table('users') -> where('dyp_user_email', $user_profile['email'])-> pluck('dyp_user_id');
    if($user_id)
    {
    $user_to_be_logged_in=new user();
    $user_to_be_logged_in = User::find($user_id);
    }
    else
    {
    $password=$token = str_random(16);
    $hash=Hash::make($password);
    $user_to_be_logged_in = user::create(array('dyp_user_type' => 'IN', 'dyp_name' => $user_profile['name'], 'dyp_user_email' => $user_profile['email'], 'dyp_mobile_number' => '','dyp_password'=> $hash,'dyp_user_status' => 'VF'));

    $data = array('name' => $user_to_be_logged_in -> dyp_name, 'password' => $password);
        Mail::send('emails.fbUserRegistration', $data, function($message) use ($user_to_be_logged_in) {
        $message -> to($user_to_be_logged_in->dyp_user_email, $user_to_be_logged_in->dyp_name) -> subject('Thanks for registering with dreamyourproperty.com');
    });

    }

    Auth::login($user_to_be_logged_in);
  

Здесь существует серьезная проблема безопасности, из-за которой я не могу проверить сеанс пользователя.
Если кто-то вручную нажмет на URL /gLoin?email=abc@gmail.comamp;name=xyz , тогда и мой код аутентифицирует его.

По сравнению с G вход в систему через FB был довольно простым.Может кто-нибудь дать мне рекомендации, я серьезно застрял в этой части.

Ответ №1:

То, как вы хотите справиться с этим /gLogin?access_token=xyz , — это то, где xyz пользователи Google access_token. Сделайте запрос людям. пройдите аутентификацию с помощью этого токена доступа. Таким образом, у вас есть проверка на стороне сервера, текущий пользователь проверяется для конкретного профиля Google .

Комментарии:

1. Спасибо, это дало мне правильное направление, и теперь мне ясно, как Google его реализовал.