larapkg / laravel-social-user
为Laravel Socialite使用配置的社交控制器
Requires
- php: ^8.1
- laravel/framework: ^10
- laravel/passport: ^11.8
- laravel/socialite: ^5.6
Requires (Dev)
- orchestra/testbench: ^8.0
- roave/security-advisories: dev-latest
This package is auto-updated.
Last update: 2024-09-06 23:41:34 UTC
README
Laravel Social User是一个允许您轻松将社交登录添加到Laravel API的包。
结合Laravel Socialite、Laravel Socialite Providers和Laravel Passport,您可以为许多社交登录提供者轻松地将社交登录添加到API中。
安装
您可以通过composer安装此包
composer require larapkg/laravel-social-user
要发布配置文件,该文件可启用设置您的应用程序用户模型,请运行
php artisan vendor:publish --provider="Larapkg\LaravelSocialUser\Providers\LaravelSocialProviderServiceProvider" --tag="config"
如果您想修改迁移,您可以使用以下命令发布它们
php artisan vendor:publish --provider="Larapkg\LaravelSocialUser\Providers\LaravelSocialProviderServiceProvider" --tag="migrations"
用法
运行迁移以创建user_social_providers
表。
然后,将HasSocialUsers
特性附加到您的用户模型上。
发布配置并设置您的所需详细信息,确保您设置了用户模型。
从用户表迁移中删除您不再需要的任何字段,或者创建并运行一个迁移以删除它们,或者使字段为可空。
将社交登录按钮添加到您的前端应用程序中,并使用社交提供者的SDK获取用户的访问令牌。然后,发送包含访问令牌和提供者名称的POST请求到您的API。
将access_token
作为请求体传递到/social-login/[provider-name]
。
注意事项
因此,每个应用程序都需要一个用户策略,而这个包不提供这样的策略。
它确实提供了,但并不一定是好的或适合您用例的。
所以您只想使用社交登录,不负责用户账户?或者您想自己管理用户账户?从GDPR的角度来看等,除非您知道自己在做什么,您可能应该仅使用社交登录策略,并避免存储任何不必要的用户数据。并且提供用户删除账户的方法,也许可以考虑在一段时间内不活跃后删除账户(在删除之前发邮件给用户是良好的实践)。
因此,此包仅存储社交提供者的用户ID、姓名、电子邮件地址和头像,当删除用户时,如果您已将HasSocialUsers
特性附加到您的用户模型上,它将删除该用户的社交用户记录。
当使用此包时,在将社交提供者的access_token
传递到您的API时,它将始终创建一个新用户,除非社交提供者账户与现有用户的名称和电子邮件相同。即在使用之前已使用的社交登录账户进行社交登录时,将使用相同的用户,但从不同的社交登录账户进行社交登录将创建一个新用户,并且这些账户将以任何方式链接。
当使用HasSocialUsers
特性时,socialUsers()
方法将返回一个HasMany
关系,因此您可以访问用户的社交用户。
其他注意事项
应安装Socialite和Passport,设置您的社交提供者,并设置您的用户模型以使用Passport。
这些内容超出了本readme的范围,但您可以在下面的链接中找到更多关于这些内容的信息。
此包不包含任何测试。