dustyrio/laravel-google-guard

完全依赖于Google登录且不持久化的Laravel认证保护器

0.1.5 2018-09-21 07:03 UTC

This package is auto-updated.

Last update: 2024-08-29 04:14:38 UTC


README

Latest Stable Version Total Downloads License

完全依赖于Google登录且不持久化的Laravel认证保护器

概述

有时,你的小型应用程序根本不需要本地持久化用户存储库。在类似情况下,依赖于外部账户存储库,例如Google(如今,几乎每个人都拥有一个Google账户)会很不错?

此认证保护器依赖于Google令牌。每次您的应用程序需要认证用户时,它都会将用户重定向到Google,然后再返回。如果令牌有效,您的用户将被认为是应用程序中的已认证用户。

完全不进行持久化,仅进行一些会话缓存。

当然,如果您的应用程序是私有的,您还可以指定允许的Google用户或域名。

依赖关系

  • Laravel Socialite
  • Laravel 5.3.*

安装

首先使用Packagist安装该包

$ composer require dusterio/laravel-google-guard

将包服务提供者添加到您的 config/app.php 中的 providers 数组

Dusterio\LaravelGoogleGuard\Integrations\LaravelServiceProvider::class,

在此之后,您应该会看到两个额外的路由

$ php artisan route:list
| GET|HEAD | auth/google            |                   | Dusterio\LaravelGoogleGuard\Http\LoginController@redirectToProvider     | guest,web    |
| GET|HEAD | auth/google/callback   |                   | Dusterio\LaravelGoogleGuard\Http\LoginController@handleProviderCallback | guest,web    |

config/auth.php 中配置保护器

    'guards' => [
        /// Your existing guards
        /// ...    
        'google' => [
            /*
             * For consistency, return a dummy (not persisted) class holder.
            */
            'userClass' => '\App\User',

            /*
             * Remember users for this number of seconds.
             */
            'timeout' => 3600,

            /*
             * Users that can use the app. If left empty, everybody is allowed.
             */
            'whitelist' => [
                'admin@.',
            ]
        ]              
    ]

在相同的文件 config/auth.php 中将其设置为默认保护器

        'web' => [
            'driver' => 'google',
            'provider' => 'users',
        ],

将您的Google密钥和密钥添加到 config/services.php,例如:

    'google' => [
        'client_id' => env('GOOGLE_CLIENT_ID'),
        'client_secret' => env('GOOGLE_CLIENT_SECRET'),
        'redirect' => env('APP_URL') . '/auth/google/callback',
    ],

这就完成了 - 您现在可以开始使用了!

许可

MIT许可

版权 (c) 2017 Denis Mysenko

特此授予任何获得此软件及其相关文档副本(以下简称“软件”)的人免费处理软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本,并允许向提供软件的人做上述事情,前提是符合以下条件

上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。

本软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、适用于特定目的和无侵权性保证。在任何情况下,作者或版权所有者不对任何索赔、损害或其他责任(无论因合同、侵权或其他原因而产生)负责,无论该索赔、损害或其他责任是否源于、由或与软件或软件的使用或其他方式有关。