larapkg/laravel-social-user

为Laravel Socialite使用配置的社交控制器

dev-master 2023-03-26 19:37 UTC

README

Laravel Social User是一个允许您轻松将社交登录添加到Laravel API的包。

结合Laravel SocialiteLaravel Socialite ProvidersLaravel 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的范围,但您可以在下面的链接中找到更多关于这些内容的信息。

此包不包含任何测试。