Laravel Socialite用于使用API的移动应用程序



我使用Laravel Socialite软件包进行社交媒体(Facebook、Gmail(身份验证、创建帐户和登录网站,工作正常。

现在我需要在移动设备上提供相同的功能,但到目前为止,我还没有得到任何关于在这种情况下如何以及需要做什么的有用线索。

我有存储用户信息的users表和存储社交名媛使用以下代码返回的user_id和provider_id的social_providers表。

public function handleProviderCallback(Request $request, $provider = null) {
try {
$socialUser = Socialite::driver($provider)->user();
} catch (Exception $e) {
return redirect('/');
}
//check if we have logged provider
$socialProvider = SocialProvider::where('provider_id', $socialUser->getId())->first();
if (!$socialProvider) {
$name = explode(' ', $socialUser->getName(), 2);
$first_name = $name[0];
$last_name = $name[1];
//create a new user and provider
$user = User::firstOrCreate(
['email' => $socialUser->getEmail()], ['last_name' => $last_name,
'first_name' => $first_name,
'email_verified_at' => date('Y-m-d H:i:s')]
);
$user->socialProviders()->create(
['provider_id' => $socialUser->getId(), 'provider' => $provider]
);
} else {
$user = $socialProvider->user;
}
auth()->login($user);
return redirect('/');
}

现在,在移动的情况下,需要做什么。我必须在手机上使用android SDK,然后将用户信息和provider_id发送到后端吗?或者需要在后端Laravel端做些什么?如果有人能以基本的方式指导我需要做什么以及在哪一边(移动或后端(,谢谢。

对于移动应用程序,您需要使用移动SDK来获取访问令牌,而在后端,您则需要使用访问令牌来获取用户信息,如以下

$provider_user = Socialite::driver($provider)->userFromToken($request->access_token);

相关内容

  • 没有找到相关文章

最新更新