为Laravel 4和5添加CAS服务器SSO认证

5.0 2016-05-04 07:42 UTC

This package is not auto-updated.

Last update: 2024-09-23 12:50:54 UTC


README

Laravel 4.x & 5.x中的CAS服务器SSO认证

安装

在composer.json中添加此包并运行composer update。

对于Laravel 4使用v1.1.*

"xavrsl/cas": "1.1.*"

对于Laravel 5使用v1.2.*

"xavrsl/cas": "1.2.*"

更新composer后,将ServiceProvider添加到providers数组中

对于Laravel 4

app/config/app.php

    'Xavrsl\Cas\CasServiceProvider',

以及外观

	'Cas' => 'Xavrsl\Cas\Facades\Cas',

对于Laravel 5

config/app.php

    Xavrsl\Cas\CasServiceProvider::class,

以及外观

	'Cas'       => Xavrsl\Cas\Facades\Cas::class,

然后使用以下方法之一发布包的配置

对于Laravel 4

    $ php artisan config:publish xavrsl/cas

对于Laravel 5

    $ php artisan vendor:publish

配置

对于使用过phpCAS客户端的人来说,配置应该相当直接。使用.env文件将允许您在不接触cas.php配置文件的情况下拥有不同的环境。我已经添加了将应用程序轻松转换为CAS代理、CAS服务或两者的可能性。您只需要将cas_proxy设置设置为true(如果您需要代理服务),并将cas_service设置为要允许的任何代理(所有这些都在配置文件中有解释)。

1.2版本中新增了一个配置变量(cas_pretend_user),允许您假装成选定的CAS用户。这个想法来源于laravel homestead的使用。我的应用程序在一个私有网络、一个虚构的域名上运行。CAS服务器无法重定向到该应用程序。因此,在那个应用程序上激活CAS插件是不可能的,但我需要一个用户ID来查询我的LDAP并允许/拒绝用户在我的应用程序中。您只需要提供一个用户ID,应用程序就会像您使用该CAS用户登录一样行事。

用法

对CAS服务器进行认证。这应该在尝试检索CAS用户ID之前调用。

	Cas::authenticate();

然后通过这种方式获取当前用户ID

	Cas::getCurrentUser();

或者

  Cas::user();