php – Laravel 5通过外部API验证用户

php – Laravel 5通过外部API验证用户,第1张

概述我想知道是否可以扩展内置身份验证以使用外部API来验证用户?我是一个Laravel新手,所以我很感激你的帮助. 我正在为我的客户端在Laravel 5.2中创建一个自定义应用程序,但我不能直接访问他们的数据库服务器,我只能调用他们的API来获取用户的详细信息. 谢谢. 如果我理解正确,你想从facebook,twitter或 github等API登录用户?如果是这样你需要使用名为Socialite 我想知道是否可以扩展内置身份验证以使用外部API来验证用户?我是一个Laravel新手,所以我很感激你的帮助.
我正在为我的客户端在Laravel 5.2中创建一个自定义应用程序,但我不能直接访问他们的数据库服务器,我只能调用他们的API来获取用户的详细信息.

谢谢.

解决方法 如果我理解正确,你想从facebook,twitter或 github等API登录用户?如果是这样你需要使用名为Socialite的laravel包,这里是下载和使用它的链接:
https://github.com/laravel/socialite

运行你的命令:

composer require laravel/socialite

接下来你需要告诉laravel你想要使用这个包,所以你需要在config / app.PHP中添加它:

'provIDers' => [// Other service provIDers...Laravel\Socialite\SocialiteServiceProvIDer::class,],

这是别名:

'Socialite' => Laravel\Socialite\Facades\Socialite::class,

基本上,你需要在开发者网站上创建一个应用程序,我将把facebook作为这个例子.你需要去这个网站:
https://developers.facebook.com/,创建一个帐户,您将获得您的应用程序URL和密钥.您将在.env和config / services文件中使用它.

在你的config / services文件中,在条带之后添加:

'facebook' => [    'clIEnt_ID' => env('FACEBOOK_ID'),'clIEnt_secret' => env('FACEBOOK_SECRET'),'redirect' => env('FACEBOOK_URL'),

在你的.env文件中:

FACEBOOK_ID=*your facebook ID*FACEBOOK_SECRET=*your facebook secret*FACEBOOK_URL=http://yourwebsite.com/callback

接下来,您将需要一个控制器来处理身份验证过程,创建类似SocialAuthController的东西并将其放入:

public function redirect(){    return Socialite::driver('facebook')->redirect();}public function callback() {    $user = $this->findOrCreateFbUser(Socialite::driver('facebook')->user());    session([        'user' => $user    ]);    return redirect()->route('/');}public function logout() {    session()->forget('user');    return redirect()->route('home');}protected function findOrCreateFbUser($fbUser) {    // the data you want to get from facebook    $fbData = [        'facebook_ID'   => $fbUser->ID,'avatar'        => $fbUser->avatar,'username'      => $fbUser->name,'email'         => $fbUser->email,];    $user = \App\User::where('facebook_ID',$fbData['facebook_ID'])->first();    if(!$user) $user = \App\User::create($fbData);    $user->update([        'avatar' => $fbUser->avatar,'username' => $fbUser->name,'email' => $fbUser->email    ]);    return $user;}

当然,您需要在用户数据库和模型中添加facebook_ID字段.
在User.PHP中:

protected $fillable = [    'facebook_ID','username','email','avatar'];

我知道这个解决方案并不是真正的动态,因为它只适用于一个API,我在Laravel上也是新手,这是我对stackoverflowquestion的第一个答案,但这对我来说很有用:)如果我忘记了什么东西不要犹豫告诉我,我可以更新这个答案..

我还建议你在Laracasts网站上关注Jeffrey Way关于社交认证的教程,它非常有启发性和清晰,我可以通过他来管理它!

总结

以上是内存溢出为你收集整理的php – Laravel 5通过外部API验证用户全部内容,希望文章能够帮你解决php – Laravel 5通过外部API验证用户所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1251370.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存