Skip to content

Commit 40d1173

Browse files
committed
Making changes and editing the start commit in socialite.md
1 parent ef92441 commit 40d1173

File tree

1 file changed

+51
-12
lines changed

1 file changed

+51
-12
lines changed

socialite.md

Lines changed: 51 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,18 @@
1-
git 0ab96f0b7c55966f5402b99e37268a0e9dacd03e
1+
git 882c775698f28e3148786c07fa0b8f9393308e13
22

33
---
44

55
# Пакет Laravel Socialite
66

77
- [Введение](#introduction)
88
- [Установка](#installation)
9-
- [Обновление пакета Socialite](#upgrading-socialite)
9+
- [Обновление пакета Socialite](#upgrading-socialite)
1010
- [Конфигурирование](#configuration)
1111
- [Аутентификация](#authentication)
1212
- [Маршрутизация](#routing)
13-
- [Необязательные параметры](#optional-parameters)
13+
- [Аутентификация и хранение](#authentication-and-storage)
1414
- [Права доступа](#access-scopes)
15+
- [Необязательные параметры](#optional-parameters)
1516
- [Получение сведений о пользователе](#retrieving-user-details)
1617

1718
<a name="introduction"></a>
@@ -29,7 +30,7 @@ git 0ab96f0b7c55966f5402b99e37268a0e9dacd03e
2930
composer require laravel/socialite
3031

3132
<a name="upgrading-socialite"></a>
32-
### Обновление пакета Socialite
33+
## Обновление пакета Socialite
3334

3435
При обновлении Socialite важно внимательно изучить [руководство по обновлению](https://github.com/laravel/socialite/blob/master/UPGRADE).
3536

@@ -68,18 +69,41 @@ git 0ab96f0b7c55966f5402b99e37268a0e9dacd03e
6869

6970
Метод `redirect` фасада `Socialite`, отвечает за перенаправление пользователя к провайдеру OAuth, в то время как метод `user` обрабатывает входящий запрос и получает информацию о пользователе от провайдера после его аутентификации.
7071

71-
<a name="optional-parameters"></a>
72-
### Необязательные параметры
72+
<a name="authentication-and-storage"></a>
73+
### Аутентификация и хранение
7374

74-
Некоторые провайдеры OAuth поддерживают необязательные параметры в запросе перенаправления. Чтобы включить в запрос любые необязательные параметры, вызовите метод `with` с ассоциативным массивом:
75+
После того как пользователь был получен от поставщика OAuth, вы можете определить, существует ли пользователь в базе данных вашего приложения и [аутентифицировать пользователя](/docs/{{version}}/authentication#authenticate-a-user-instance). Если пользователь не существует в базе данных вашего приложения, вы обычно создаете новую запись в своей базе данных:
7576

77+
use App\Models\User;
78+
use Illuminate\Support\Facades\Auth;
7679
use Laravel\Socialite\Facades\Socialite;
7780

78-
return Socialite::driver('google')
79-
->with(['hd' => 'example.com'])
80-
->redirect();
81+
Route::get('/auth/callback', function () {
82+
$githubUser = Socialite::driver('github')->user();
83+
84+
$user = User::where('github_id', $githubUser->id)->first();
85+
86+
if ($user) {
87+
$user->update([
88+
'github_token' => $githubUser->token,
89+
'github_refresh_token' => $githubUser->refreshToken,
90+
]);
91+
} else {
92+
$user = User::create([
93+
'name' => $githubUser->name,
94+
'email' => $githubUser->email,
95+
'github_id' => $githubUser->id,
96+
'github_token' => $githubUser->token,
97+
'github_refresh_token' => $githubUser->refreshToken,
98+
]);
99+
}
100+
101+
Auth::login($user);
102+
103+
return redirect('/dashboard');
104+
});
81105

82-
> {note} При использовании метода `with` будьте осторожны, чтобы не передавать какие-либо зарезервированные ключевые слова, такие как `state` или `response_type`.
106+
> {tip} Для получения дополнительной информации о том, какая информация о пользователях доступна от конкретных поставщиков OAuth, обратитесь к документации по [получению сведений о пользователе](#retrieving-user-details).
83107
84108
<a name="access-scopes"></a>
85109
### Права доступа
@@ -98,10 +122,25 @@ git 0ab96f0b7c55966f5402b99e37268a0e9dacd03e
98122
->setScopes(['read:user', 'public_repo'])
99123
->redirect();
100124

125+
<a name="optional-parameters"></a>
126+
### Необязательные параметры
127+
128+
Некоторые провайдеры OAuth поддерживают необязательные параметры в запросе перенаправления. Чтобы включить в запрос любые необязательные параметры, вызовите метод `with` с ассоциативным массивом:
129+
130+
use Laravel\Socialite\Facades\Socialite;
131+
132+
return Socialite::driver('google')
133+
->with(['hd' => 'example.com'])
134+
->redirect();
135+
136+
> {note} При использовании метода `with` будьте осторожны, чтобы не передавать какие-либо зарезервированные ключевые слова, такие как `state` или `response_type`.
137+
101138
<a name="retrieving-user-details"></a>
102139
## Получение сведений о пользователе
103140

104-
После того, как пользователь будет перенаправлен обратно на ваш маршрут `callback` аутентификации, вы можете получить данные пользователя, используя метод `user` пакета Socialite. Объект пользователя, возвращаемый методом `user`, содержит множество свойств и методов, которые вы можете использовать для сохранения информации о пользователе в вашей собственной базе данных. Различные свойства и методы могут быть доступны в зависимости от версии провайдера OAuth, с которым вы выполняете аутентификацию, OAuth 1.0 или OAuth 2.0:
141+
После того как пользователь будет перенаправлен обратно на ваш маршрут `callback` аутентификации, вы можете получить данные пользователя, используя метод `user` пакета Socialite. Объект пользователя, возвращаемый методом `user`, содержит множество свойств и методов, которые вы можете использовать для сохранения информации о пользователе в вашей собственной базе данных. Различные свойства и методы могут быть доступны в зависимости от версии провайдера OAuth, с которым вы выполняете аутентификацию, OAuth 1.0 или OAuth 2.0:
142+
143+
use Laravel\Socialite\Facades\Socialite;
105144

106145
Route::get('/auth/callback', function () {
107146
$user = Socialite::driver('github')->user();

0 commit comments

Comments
 (0)