Laravel Socialite Apple Вход без информации о пользователе ⇐ IOS
Laravel Socialite Apple Вход без информации о пользователе
I add in my Laravel API on my login endpoint ability for user to sign-in with apple also when I try, everything from the config looks good also in my api I receive this:
( [id] => 001519.7eab28c498c946828053eXXXXXXXX.XXXX [nickname] => [name] => [email] => [avatar] => [user] => Array ( [iss] => https://appleid.apple.com [aud] => com.muze.mob [exp] => 1709642029 [iat] => 1709555629 [sub] => XXXXX.XXXXXXXXXXXXXXXXXXXX.XXXX [nonce] => XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX [c_hash] => XXXXXXXXXXXX [auth_time] => 1709555629 [nonce_supported] => 1 ) [attributes] => Array ( [id] => XXXXX.XXXXXXXXXXXXXXXXXXXXX.XXXX [name] => [email] => ) [token] => eyJraWQiOiJCaDZIN3JIVm1iIiwiYWxnIjoiUlMyNTYifQ.eyJpc3MiOiJodHRwczovL2FwcGxlaWQuYXBwbGUuY29tIiwiYXVkIjoiY29tLm11emUubW9iIiwiZXhwIjoxNzA5NjQyMDI5LCJpYXQiOjE3MDk1NTU2MjksInN1YiI6IjAwMTUxOS43ZWFiMjhjNDk4Yzk0NjgyODA1M2VlYTIxYTM2ZmZjOC4xMTU5Iiwibm9uY2UiOiI1ZDVjMGRiMjE2NGU4MzZiM2YzXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX [refreshToken] => [expiresIn] => [approvedScopes] => [accessTokenResponseBody] => ) As we can see the auth looks good also it miss user email .. Also I have an id but I don't understand why I can't use user mail ..
I use userFromToken from socialite with apple provider
$oauthUser = Socialite::driver($request->get('login_type'))->stateless()->userFromToken($request->get('token')); $username = $oauthUser->getName() && !User::where('username', $oauthUser->getName())->exists() && !User::where('pseudo', $oauthUser->getName())->exists() ? $oauthUser->getName() : $this->generateUniqueUsername(); $user = User::firstOrCreate( ['email' => $oauthUser->getEmail()], [ 'username' => str_replace(' ', '', $username), 'pseudo' => str_replace(' ', '', $username), 'first_name' => $oauthUser->user['given_name'] ?? null, 'last_name' => $oauthUser->user['family_name'] ?? null, 'avatar' => $oauthUser->getAvatar(), 'email_verified_at' => now(), 'password' => Hash::make(substr(str_shuffle('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'), 0, 30)) ] ); What is missing ? Even if user doesn't want to share his mail apple would generate one.
How to resolve this ?
Thanks
Источник: https://stackoverflow.com/questions/781 ... -user-info
I add in my Laravel API on my login endpoint ability for user to sign-in with apple also when I try, everything from the config looks good also in my api I receive this:
( [id] => 001519.7eab28c498c946828053eXXXXXXXX.XXXX [nickname] => [name] => [email] => [avatar] => [user] => Array ( [iss] => https://appleid.apple.com [aud] => com.muze.mob [exp] => 1709642029 [iat] => 1709555629 [sub] => XXXXX.XXXXXXXXXXXXXXXXXXXX.XXXX [nonce] => XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX [c_hash] => XXXXXXXXXXXX [auth_time] => 1709555629 [nonce_supported] => 1 ) [attributes] => Array ( [id] => XXXXX.XXXXXXXXXXXXXXXXXXXXX.XXXX [name] => [email] => ) [token] => eyJraWQiOiJCaDZIN3JIVm1iIiwiYWxnIjoiUlMyNTYifQ.eyJpc3MiOiJodHRwczovL2FwcGxlaWQuYXBwbGUuY29tIiwiYXVkIjoiY29tLm11emUubW9iIiwiZXhwIjoxNzA5NjQyMDI5LCJpYXQiOjE3MDk1NTU2MjksInN1YiI6IjAwMTUxOS43ZWFiMjhjNDk4Yzk0NjgyODA1M2VlYTIxYTM2ZmZjOC4xMTU5Iiwibm9uY2UiOiI1ZDVjMGRiMjE2NGU4MzZiM2YzXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX [refreshToken] => [expiresIn] => [approvedScopes] => [accessTokenResponseBody] => ) As we can see the auth looks good also it miss user email .. Also I have an id but I don't understand why I can't use user mail ..
I use userFromToken from socialite with apple provider
$oauthUser = Socialite::driver($request->get('login_type'))->stateless()->userFromToken($request->get('token')); $username = $oauthUser->getName() && !User::where('username', $oauthUser->getName())->exists() && !User::where('pseudo', $oauthUser->getName())->exists() ? $oauthUser->getName() : $this->generateUniqueUsername(); $user = User::firstOrCreate( ['email' => $oauthUser->getEmail()], [ 'username' => str_replace(' ', '', $username), 'pseudo' => str_replace(' ', '', $username), 'first_name' => $oauthUser->user['given_name'] ?? null, 'last_name' => $oauthUser->user['family_name'] ?? null, 'avatar' => $oauthUser->getAvatar(), 'email_verified_at' => now(), 'password' => Hash::make(substr(str_shuffle('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'), 0, 30)) ] ); What is missing ? Even if user doesn't want to share his mail apple would generate one.
How to resolve this ?
Thanks
Источник: https://stackoverflow.com/questions/781 ... -user-info
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Следует ли избегать IHttpContextAccessor? Получение информации о пользователе в службу DI
Anonymous » » в форуме C# - 0 Ответы
- 33 Просмотры
-
Последнее сообщение Anonymous
-