mrstebo / laravel-socialite-ekm
EKM OAuth2 Provider for Laravel Socialite
v0.1.0
2020-02-22 18:33 UTC
Requires
- php: >=7.0.0
- laravel/socialite: ^4.0
- lcobucci/jwt: ^3.3
This package is auto-updated.
Last update: 2024-09-23 06:18:00 UTC
README
EKM OAuth2 Provider for Laravel Socialite
此包允许您使用EKM通过Laravel Socialite。
安装
您可以通过composer安装此包
composer require mrstebo/laravel-socialite-ekm
注意:如果您使用Laravel 5.5+,则可以跳过服务提供者的注册,因为它应该是自动发现的。
然后您应该在您的config/app.php文件中注册服务提供者
'providers' => [ // Other service providers Mrstebo\LaravelSocialiteEkm\Provider::class, ]
您还需要添加OAuth应用的凭证,您可以通过EKM Partners账户获取这些凭证。它们应放在您的config/services.php文件中。您可以复制下面的示例配置以开始
'ekm' => [ 'client_id' => env('EKM_CLIENT_ID'), 'client_secret' => env('EKM_CLIENT_SECRET'), 'redirect' => env('EKM_REDIRECT'), ],
基本用法
因此,现在您已准备好对用户进行身份验证!您需要两个路由:一个用于将用户重定向到OAuth提供者,另一个用于在身份验证后接收提供者的回调。我们将使用Socialite外观访问Socialite
<?php namespace App\Http\Controllers\Auth; use Socialite; class AuthController extends Controller { /** * Redirect the user to the EKM authentication page. * * @return Response */ public function redirectToProvider() { return Socialite::driver('ekm')->redirect(); } /** * Obtain the user information from EKM. * * @return Response */ public function handleProviderCallback() { $user = Socialite::driver('ekm')->user(); // $user->token; } }
当然,您需要定义路由到您控制器的方法
Route::get('auth/ekm', 'Auth\AuthController@redirectToProvider'); Route::get('auth/ekm/callback', 'Auth\AuthController@handleProviderCallback');
重定向方法负责将用户发送到OAuth提供者,而用户方法将读取传入的请求并从提供者检索用户信息。
EKM OAuth2不支持在请求上设置作用域,所有作用域都在OAuth应用程序设置中配置。
检索用户详细信息
一旦您有了用户实例,您就可以获取有关用户的更多详细信息
$user = Socialite::driver('ekm')->user(); // OAuth Two Providers $token = $user->token; $refreshToken = $user->refreshToken; // may not always be provided $expiresIn = $user->expiresIn; // EKM Specific Providers $username = $user->user['sub']; $serverId = $user->user['server_id'];