Laravel开发:怎样使用Laravel Socialite实现Github登录?
在当今互联网时代,用户的登录已经成为了绝大部分web应用必需要思量的事情。这也意味着web应用需要为用户提供可选择的多重登录方法,来降低用户的登录难题度和优化用户体验。
作为目今最受接待的PHP框架之一,Laravel提供了一些很是利便的方法来实现用户的身份验证,其中Laravel Socialite是一个很是强盛的用户身份验证解决计划,它允许应用使用第三方平台作为身份验证提供者。
在本文中,我们将先容怎样使用Laravel Socialite来实现Github登录的功效。下面我们来逐步实现这个目的。
办法1:建设Github应用
在最先本文之前,首先需要注册和建设一个Github账号,并且在Github中建设一个OAuth应用程序。建设应用的历程相对简朴,只需遵照以下几个办法:
上岸Github账号,在 Github Settings -> Developer settings -> OAuth Apps页面中建设新的OAuth App
在第一部分填写App名称、Homepage URL和Callback URL
Callback URL 即上岸乐成后返回的Website地点,需要在Laravel网站后台界说
提交表单后返回的页面中会显示Github应用程序的client_id和client_secret。client_id 将用于设置Laravel Socialite的Github驱动程序。
办法2:装置 Laravel Socialite
装置 Laravel Socialite 可以通过Composer轻松完成。只需在项目目录下的下令行中输入以下指令即可:
composer require laravel/socialite
登录后复制
办法3:设置效劳提供者和 Facade 引用
翻开 config/app.php 设置文件,找到 providers 数组和 aliases 数组,将 Socialite 效劳提供者和 Facade 引用添加到对应的数组中。
'providers' => [ // Other service providers... LaravelSocialiteSocialiteServiceProvider::class, ], 'aliases' => [ // Other aliases... 'Socialite' => LaravelSocialiteFacadesSocialite::class, ],
登录后复制
办法4:界说Github驱动设置
在 config/services.php 设置文件中添加以下设置:
'github' => [ 'client_id' => env('GITHUB_CLIENT_ID'), 'client_secret' => env('GITHUB_CLIENT_SECRET'), 'redirect' => env('GITHUB_REDIRECT'), ],
登录后复制
办法5:界说Github登录链接
翻开登录页面的 blade 模板文件,添加以下代码:
<a href="{{ url('auth/github') }}" class="btn btn-github"><i class="fa fa-github"></i> Github 登录</a>
登录后复制
这将建设一个链接,通过会见 /auth/github,将会跳转到Github的登录页面。
办法6:界说Github回调函数
翻开我们在Github中注册时的 Callback URL 页面并获取链接中的code参数,并在Laravel路由中添加以下代码:
Route::get('auth/github/callback', function () { $user = Socialite::driver('github')->user(); // 若是在外地没有找到该用户,则建设新用户 $existingUser = User::where('email', $user->getEmail())->first(); if ($existingUser) { auth()->login($existingUser, true); } else { $newUser = new User; $newUser->name = $user->getNickname(); $newUser->email = $user->getEmail(); $newUser->github_id = $user->getId(); $newUser->avatar = $user->getAvatar(); $newUser->provider = 'github'; $newUser->save(); auth()->login($newUser, true); } return redirect()->to('/home'); });
登录后复制
这里需要注重的是,我们需要将github_id生涯在数据库中以便需要时举行登录验证,同时也生涯了用户昵称和头像利便展示。
办法7:建设.env文件
翻开项目根目录下的 .env 文件,添加以下 Github 相关设置:
GITHUB_CLIENT_ID=your-github-client-id-here GITHUB_CLIENT_SECRET=your-github-client-secret-here GITHUB_REDIRECT=http://localhost:8000/auth/github/callback
登录后复制
上述设置中,你需要将 your-github-client-id-here 和 your-github-client-secret-here 替换为你自己在Github获取到的client_id和client_secret。GITHUB_REDIRECT的值应该是Github上注册应用程序时的重定向URI参数。
好了,现在你可以实验用 Github 登录来测试你的应用程序了。当你会见 /auth/github 时,你应该被重定向到 Github 的登录页面。输入你的 Github 账号后,你应该会被重定向回到你通过 Callback URI 指定的地点。
使用 Laravel Socialite 确实是实现身份验证的一种快速、轻盈的要领,它还支持其他许多账号认证效劳提供商,如Facebook、Twitter、Google等等。恬静且高效的第三方登录方法能够极大地提升用户的体验,为Web应用添加多重登录方法也逐渐成为了一种须要。相比起自己自力实现一套认证系统,使用 Laravel Socialite 则可以使用现有的优异的认证效劳提供商来简化身份验证计划的实现。
以上就是Laravel开发:怎样使用Laravel Socialite实现Github登录?的详细内容,更多请关注本网内其它相关文章!