abidra/laravel-google-auth

Google OAuth认证的Laravel认证驱动

dev-master 2017-06-10 12:09 UTC

This package is not auto-updated.

Last update: 2024-09-29 03:41:46 UTC


README

The Monkeys

Laravel Google认证驱动

允许您使用Google来认证您的Laravel应用程序的用户。

安装

要获取cachebuster的最新版本,只需在composer.json文件中引入它。

注意:此包依赖于非Packagist包google-api-php-client,因此您需要在运行composer update或composer install之前,手动将以下存储库定义添加到项目的composer.json文件中

	"repositories": [
		{
      "type": "package",
      "package": {
        "name": "google/google-api-php-client",
        "version": "0.6.7",
        "dist": {
          "url": "http://google-api-php-client.googlecode.com/files/google-api-php-client-0.6.7.tar.gz",
          "type": "tar"
        },
        "autoload": {
          "classmap": ["src/"]
        }
      }
		}
	],
composer require themonkeys/laravel-google-auth:dev-master --no-update
composer update themonkeys/laravel-google-auth

安装完包后,您需要将服务提供者注册到应用程序中。打开app/config/app.php并找到providers键。

删除AuthServiceProvider的行

'providers' => array(
		'Illuminate\Auth\AuthServiceProvider',
)

并替换为

'providers' => array(
    'Themonkeys\LaravelGoogleAuth\LaravelGoogleAuthServiceProvider',
)

要配置此包,可以使用以下命令将配置文件复制到app/config/packages/themonkeys/laravel-google-auth。

php artisan config:publish themonkeys/laravel-google-auth

或者您可以直接在文件夹中创建一个新文件,只覆盖您需要的设置。

设置本身在config.php中有文档说明。

要使您的配置仅适用于特定的环境,请将您的配置放在一个环境文件夹中,例如app/config/packages/themonkeys/laravel-google-auth/environment-name/config.php。

使用方法

要启用基于Google的认证,您首先需要选择'google'认证驱动。打开app/config/auth.php并编辑driver键

return array(
	'driver' => 'google',
);

对于Google认证,您需要在您的应用程序中添加一个登录页面,其中包含用户可以点击的链接以启动认证过程。最简单的方法是将以下内容添加到您的routes.php文件中

Route::get('/login', function() {
    return View::make('login', array(
      'authUrl' => Auth::getAuthUrl()
    ));
});

注意:getAuthUrl()在其他认证驱动中不存在,因此上述代码在其他驱动中会抛出错误。

然后使用{{ $authUrl }}作为login.blade.php视图中的链接的href

<a class='login' href='{{ $authUrl }}'>Connect Me!</a>

然后您需要将'before'过滤器'google-finish-authentication'添加到认证完成后Google重定向到的路由上。确保此过滤器首先应用,在auth过滤器之前 - 否则,auth过滤器将用户发送回登录页面,并且会丢失会话。

Route::group(array('before' => array('google-finish-authentication', 'auth')), function() {
    Route::get('/', 'HomeController@showWelcome');
});

添加应用程序的注销功能与任何其他认证驱动相同 - 只需将以下内容添加到您的routes.php中,然后在您需要的地方添加一个指向URI /logout的链接

Route::get('/logout', function() {
    Auth::logout();
    return Redirect::to('/');
});

所有在Google_Userinfo对象中可用的信息都可通过Auth::user()返回的用户对象访问,例如Auth::user()->name

    <table>
        <tr>
            <th>Your ID:</th><td>{{ Auth::user()->id }}</td>
        </tr>
        <tr>
            <th>Your Full Name:</th><td>{{ Auth::user()->name }}</td>
        </tr>
        <tr>
            <th>Your Given Name:</th><td>{{ Auth::user()->given_name }}</td>
        </tr>
        <tr>
            <th>Your Family Name:</th><td>{{ Auth::user()->family_name }}</td>
        </tr>
        <tr>
            <th>Your Email Address:</th><td>{{ Auth::user()->email }}</td>
        </tr>
        <tr>
            <td></td>
            <td>Your Email Address has
                @if (Auth::user()->verified_email)
                been <strong>verified</strong>
                @else
                <strong>not</strong> been verified
                @endif
            </td>
        </tr>
        <tr>
            <th>Your hosted domain:</th><td>{{ Auth::user()->hd }}</td>
        </tr>
        <tr>
            <th>Your Locale:</th><td>{{ Auth::user()->locale }}</td>
        </tr>
    </table>

贡献

在没有正式样式指南的情况下,请注意保持现有的编码风格。

许可证

MIT许可证(c) The Monkeys