Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Планируется только авторизация пользователей через указанные сервисы.
Посоветуйте что будет оптимальным вариантом с точки зрения затрат по времени интеграции и в поддержке кода со временем?
1. Подключить Facebook и Google SDK и каждый отдельно настроить
http://maxoffsky.com/code-blog/integrat … plication/
https://github.com/TheMonkeys/laravel-google-auth
2. HybridAuth
https://github.com/FrozenNode/Social
3. OAuth wrapper for Laravel 4
https://github.com/artdarek/oauth-4-laravel
Не в сети
Привет! Я использую во всех своих проектах artdarek/oauth-4-laravel - у него там в документации указаны все примеры для этих социальных сетей - 5 минут и все работает, а если с перспективой на будущее - можно посмотреть исходники методов и в дальнейшем уже использовать, не только для авторизации, но и для постов и чего нибудь еще
С остальными сравнить не могу, т.к. использовал только его..
Не в сети
Привет! Я использую во всех своих проектах artdarek/oauth-4-laravel - у него там в документации указаны все примеры для этих социальных сетей - 5 минут и все работает
Я вот тоже новичок, не пинайте
Документация и примеры вроде понятны, но не до конца.
Вот, например, мне нужно данные, которые отдает та или иная соц.сеть (почта, имя, айдишник, фото, дата рождения) записать в БД.
Где, что и какая функция это отдают?
Не в сети
Необходимо создать route, который будет ссылаться на эту функцию.
public function loginWithFacebook() {
// get data from input
$code = Input::get( 'code' );
// get fb service
$fb = OAuth::consumer( 'Facebook' );
// check if code is valid
// if code is provided get user data and sign in
if ( !empty( $code ) ) {
// This was a callback request from facebook, get the token
$token = $fb->requestAccessToken( $code );
// Send a request with it
$result = json_decode( $fb->request( '/me' ), true );
// В массиве $result содержатся все данные, которые передает вам facebook.
dd($result);
}
// if not ask for permission first
else {
// get fb authorization
$url = $fb->getAuthorizationUri();
// return to facebook login url
return Redirect::to( (string)$url );
}
}
В массиве $result содержатся все данные, которые передает вам facebook.
Для каждой социальной сети этот код может немножко отличаться, т.к. отличаются запросы к данным, нужно читать документацию к API каждой, отдельной соц. сети. Допустим перед тем, что бы работал этот пример - вам необходимо создать и настроить свое приложение на facebook (вся информация как это сделать - https://developers.facebook.com) и указать app key & secret key вашего приложения, в настройках этого package..
Изменено lieroes (22.01.2015 18:44:08)
Не в сети
Добавлю пару слов, чтобы было понятно, как записать в БД.
3. OAuth wrapper for Laravel 4
public function loginWithFacebook()
{
$code = Input::get('code');
$fb = OAuth::consumer( 'Facebook' ,'http://myhost.dev/login/fb');
if ( !empty( $code ) ) {
$token = $fb->requestAccessToken( $code );
$result = json_decode( $fb->request( '/me' ), true );
if ($user = User::where( 'social_id', '=' , $result['id'] )->first()) {
Auth::login($user);
return Redirect::to('profile');
} else {
$user = new User();
$user->email = $result['email'];
$user->social_id = $result['id'];
$user->save();
$profile = new UserProfile();
$profile->firstname = $result['first_name'];
$profile->lastname = $result['last_name'];
$user->profile()->save($profile);
Auth::login( $user );
return Redirect::to('profile');
}
} else {
$url = $fb->getAuthorizationUri();
return Redirect::to((string)$url );
}
}
Изменено zogxray (23.01.2015 03:20:09)
Не в сети
т.е. можно создать отдельный контроллер для авторизации и там перечислить все методы по каждой соцсети и в роутах прописать ссылку на каждый из этих методов?
Не в сети
Да, почему бы и нет)
Не в сети
Страницы 1