a2workspace / laravel-social-entry
提供一個整合的第三方登入入口
1.0.0
2022-07-17 01:36 UTC
Requires
- php: ^7.4|^8.0
- jakeasmith/http_build_url: ^1
- socialiteproviders/line: ^4.1
Requires (Dev)
- orchestra/testbench: 6.x
This package is auto-updated.
Last update: 2024-09-04 05:57:53 UTC
README
提供一個幾乎零配置,整合前後端的第三方登入的 API 身份認證接口
特性
- 基于 Laravel Socialite 的 API 身份認證接口
- 专为前端 API 接口设计
- 解决一般登录与社区登录不一致的问题
- 解决新用户通过社区登录后,需要填写完成注册表格才能完成注册的情况
- 整合社区账号链接功能
- 支持多用户模型
- 兼容 Nuxt.js;参考套件 nuxt-social-entry
快速导航
安装 | 安装
要在项目中使用 SocialEntry,执行以下命令通过 Composer 引入到您的 Laravel 项目中
composer require a2workspace/laravel-social-entry
然后使用 vendor:publish
命令生成配置文件
php artisan vendor:publish --tag=@a2workspace/laravel-social-entry
现在您可以在 config/social-entry.php
中指定要启用的第三方授权登录。
配置 | 配置
在开始使用 SocialEntry 之前,与使用 Laravel Socialite 一样,您必须先将第三方服务设置添加到 config/services.php
中。您可以使用下面的示例或参考说明 Laravel Socialite 配置。
一个简单的设置示例
'github' => [ 'client_id' => env('GITHUB_CLIENT_ID'), 'client_secret' => env('GITHUB_CLIENT_SECRET'), 'redirect' => env('GITHUB_REDIRECT_URL', '/auth/github/callback'), ], 'facebook' => [ 'client_id' => env('FACEBOOK_CLIENT_ID'), 'client_secret' => env('FACEBOOK_CLIENT_SECRET'), 'redirect' => env('FACEBOOK_REDIRECT_URL', '/auth/facebook/callback'), ], 'google' => [ 'client_id' => env('GOOGLE_CLIENT_ID'), 'client_secret' => env('GOOGLE_CLIENT_SECRET'), 'redirect' => env('GOOGLE_REDIRECT_URL', '/auth/google/callback'), ], 'line' => [ 'client_id' => env('LINE_CHANNEL_ID'), 'client_secret' => env('LINE_SECRET'), 'redirect' => env('LINE_REDIRECT_URL', '/auth/line/callback'), ],
.env
/.env.example
设置
# See https://github.com/settings/developers GITHUB_CLIENT_ID= GITHUB_CLIENT_SECRET= GITHUB_REDIRECT_URL= # See https://developers.facebook.com/apps/?show_reminder=true FACEBOOK_CLIENT_ID= FACEBOOK_CLIENT_SECRET= FACEBOOK_REDIRECT_URL= # See https://console.cloud.google.com/apis/credentials GOOGLE_CLIENT_ID= GOOGLE_CLIENT_SECRET= GOOGLE_REDIRECT_URL= # See https://developers.line.biz/console/ LINE_CHANNEL_ID= LINE_SECRET= LINE_REDIRECT_URL=
这里提供了第三方登录设置页面的链接
Github
: https://github.com/settings/developersFacebook
: https://developers.facebook.com/apps/?show_reminder=trueGoogle
: https://console.cloud.google.com/apis/credentialsLine
: https://developers.line.biz/console/
注册路由 | 注册路由
接下来,您应该在 App\Providers\AuthServiceProvider
的 boot
方法中调用 SocialEntry::routes
方法来注册路由。
<?php namespace App\Providers; use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider; use Illuminate\Support\Facades\Gate; use A2Workspace\SocialEntry\SocialEntry; class AuthServiceProvider extends ServiceProvider { /** * The policy mappings for the application. * * @var array<class-string, class-string> */ protected $policies = [ // 'App\Models\Model' => 'App\Policies\ModelPolicy', ]; /** * Register any authentication / authorization services. * * @return void */ public function boot() { $this->registerPolicies(); if (! $this->app->routesAreCached()) { SocialEntry::routes(); } } }