teuz/laravel-cas

适用于Laravel 4的CAS认证包。

dev-master 2014-01-27 17:19 UTC

This package is not auto-updated.

Last update: 2024-09-28 14:22:40 UTC


README

teuz/laravel-cas是Laravel 4的CAS认证包。

请注意,此包处于早期开发阶段,测试并不充分!

安装

teuz/laravel-cas的要求添加到您的composer.json文件中

"require": {
	"laravel/framework": "4.1.*",
	"teuz/laravel-cas": "dev-master"
},

使用终端更新composer

composer update

将服务提供者添加到app/config/app.php中: (注意以下两个服务提供者都是必需的)

'Teuz\LaravelCas\LaravelCasServiceProvider',
'\anlutro\cURL\Laravel\cURLServiceProvider',

(推荐) 将别名添加到app/config/app.php

'Cas' => 'Teuz\LaravelCas\Facades\Cas'

使用终端发布包配置

php artisan config:publish teuz/laravel-cas

配置

配置文件位于app/config/packages/teuz/laravel-cas/config.php

有四个参数需要配置

  • url - CAS服务器的url(例如:“https://hostname.com/cas”)
  • service - 发送到CAS服务器的服务url。这应该指向一个执行Cas::check()的路由。
  • userField - CAS服务器和用户对象之间共享的用户标识键名称。(例如:“username”)
  • createUsers - 是否创建用户。如果为false,即使数据库中缺少用户且通过CAS服务器正确验证,他们也不会登录。

用法

有四个重要的函数:logincheckreloadlogout

登录

当您希望用户重定向到CAS登录页面时,应调用登录函数。一种方法是在auth回调中添加此调用

app/filters.php

Route::filter('auth', function()
{
	if (Auth::guest())
	{
		return Cas::login();
	}
});

每次将此过滤器添加到路由时,未登录的用户将被重定向到CAS登录页面。

检查和重载

检查函数用于验证CAS票据。应添加一个调用此函数的路由

Route::get('/user/cas', function()
{
	if(Cas::check()) return Cas::reload();
});

注意,此路径应等于配置参数service当用户在CAS服务器提交登录表单时,用户将被重定向到此路由并带有票据。然后我们必须验证票据,如果成功,则使用reload函数将用户重定向到目标页面。

登出

用于登出用户的函数

Route::get('/user/logout', function()
{
	if(Auth::guest() === false)
	{
		return Cas::logout();
	}
	else
	{
		return Redirect::to('/');
	}
});

许可协议

版权所有 2014 Teuz

根据Apache License 2.0(“许可证”)许可;除非符合许可证规定,否则不得使用此文件。您可以在以下位置获得许可证副本:

https://apache.ac.cn/licenses/LICENSE-2.0

除非适用法律要求或书面同意,否则在许可证下分发的软件按“原样”分发,不提供任何明示或暗示的保证或条件。有关许可证的具体语言、权限和限制,请参阅许可证。