statikbe/laravel-google-authenticate

Laravel中的Google身份验证

4.3.0 2024-03-13 07:28 UTC

README

Card of Laravel Nova Chained Translation Manager

Google身份验证器

Latest Version on Packagist Total Downloads

此模块为您提供了选项,让您(和您的用户)可以使用他们的Google账户在Laravel应用程序中登录。

最初,这是为了只允许来自某些工作空间的人登录。但可以启用以允许所有人登录。

变更日志 - 升级指南

安装

使用Composer

composer require statikbe/laravel-google-authenticate

用法

此包将自动注册自己。

您可以使用以下命令发布迁移

php artisan vendor:publish --provider="Statikbe\GoogleAuthenticate\GoogleAuthenticateServiceProvider" --tag="google-migrations"

要向数据库添加所需列,请运行

php artisan migrate

在您的User.php类中添加use HasGoogleAuth特质。这将为您提供的用户必要的可填充选项。

在您的.env文件中,您应该包括以下键

GOOGLE_CLIENT_ID="YOUR_GOOGLE_CLIENT_ID"
GOOGLE_CLIENT_SECRET="YOUR_GOOGLE_CLIENT_SECRET"
CALLBACK_URL_GOOGLE="https://www.domain.com/login/google/callback"

下一步是向您的services.php配置文件中添加以下行

'google' => [
        'client_id' => env('GOOGLE_CLIENT_ID'),
        'client_secret' => env('GOOGLE_CLIENT_SECRET'),
        'redirect' => env('CALLBACK_URL_GOOGLE'),
    ],

有关如何创建Google身份验证客户端ID和密钥的信息可以在他们的文档页面中找到。

最后,您可以将Google登录路由添加到登录和注册视图中:{{ route('google.auth.login') }}

配置

发布配置文件

php artisan vendor:publish --provider="Statikbe\\GoogleAuthenticate\\GoogleAuthenticateServiceProvider" --tag="google-config"

电子邮件域名

您可以更改可以使用Google登录的电子邮件域名。以下三个选项是可用的

  • allowed-数组:只有此数组中的域可以使用Google登录
  • disabled-数组:此数组中的域不能使用Google登录
  • 空/空值:所有域名都可以使用Google登录
    'domains' => [
        //'allowed' => ['statik.com'],
        //'disabled' => ['google.com'],
    ],

用户表

您可以自定义如何保存用户。配置数组user_columns将为您的用户创建可填充的数据。数组键是您的用户列名,数组值是要存储的内容。(请确保值是数组)。您可以为每个键添加多个值,这些值将粘合在一起。以下值将填充Google返回的数据,在粘合之前。

const GOOGLE_VALUES = [
        'name',
        'email_verified',
        'email',
        'given_name',
        'family_name',
        'picture',
        'nickname',
        'locale',
];

例如,在您的配置中

'user_columns' => [
        'name' => ['name', ' (', 'locale', ')']     // John Doe (en)
        'email_verified_at' => ['email_verified'],  // 2019-10-23 14:31:50
        'email' => ['email'],                       // john@doe.com
        'other data' => ['blablabla'],              // blablabla
]

发布

您可以使用以下命令发布视图和翻译文件

php artisan vendor:publish --provider="Statikbe\\GoogleAuthenticate\\GoogleAuthenticateServiceProvider" --tag="google-views"

php artisan vendor:publish --provider="Statikbe\\GoogleAuthenticate\\GoogleAuthenticateServiceProvider" --tag="google-lang"

安全

如果您发现任何安全相关的问题,请通过电子邮件info@statik.be联系,而不是使用问题跟踪器。

许可证

MIT许可证(MIT)。有关更多信息,请参阅许可证文件