使用 Opauth 插件实现简单的第三方提供商身份验证
Opauth 是一个面向 PHP 的多提供商身份验证框架,灵感来自 Ruby 的 OmniAuth。Opauth 使 PHP 应用程序能够轻松简单地跨不同提供商执行用户身份验证。
在 CakePHP 上轻松实现 Opauth
什么是 Opauth?
Opauth 是一个面向 PHP 的多提供商身份验证框架,灵感来自 Ruby 的 OmniAuth.
Opauth 使 PHP 应用程序能够轻松简单地跨不同提供商执行用户身份验证。
Opauth 通过策略在身份验证提供商的 API 和您的 PHP 应用程序之间建立连接。Opauth 可用的策略包括 Facebook、Google、Twitter、OpenID、等等.
访问 http://opauth.org 以获取快速演示。
GitHub 上的 Opauth:uzyn/opauth 作为 Composer 包的 Opauth:opauth/opauth
CakePHP 上的 Opauth
通过 Opauth CakePHP 插件,Opauth 在 CakePHP 应用程序上的实现变得更加容易。
快速目录
- 如何使用此插件 (详细说明)
- 一个简单的示例应用程序 (预配置的 CakePHP 应用程序,包含屏幕截图)
如何使用此插件
下载 Opauth CakePHP 插件 并将其放在您的 CakePHP 插件目录中。或者通过 Git:假设 ` APP` 是您的 CakePHP 应用程序所在的目录,通常是 CakePHP 基目录的 ` app/`
cd APP/Plugin git clone git://github.com/uzyn/cakephp-opauth.git Opauth cd Opauth git submodule init git submodule update
将此行添加到应用程序的 ` Config/bootstrap.php` 文件末尾
<?php CakePlugin::load('Opauth', array('routes' => true, 'bootstrap' => true));
在上面的行之后,覆盖您想要更改的任何 Opauth 配置。
将 策略 加载到 Strategy/ 目录中。在应用程序的 ` Config/bootstrap.php` 文件中,追加策略配置,如下所示
<?php CakePlugin::load('Opauth', array('routes' => true, 'bootstrap' => true)); // Using Facebook strategy as an example Configure::write('Opauth.Strategy.Facebook', array( 'app_id' => 'YOUR FACEBOOK APP ID', 'app_secret' => 'YOUR FACEBOOK APP SECRET' ));
访问 http://path_to_your_cake_app/auth/facebook 以使用 Facebook 身份验证,其他策略的访问方式与此类似。
验证后,用户将被重定向到 Router::url(‘/opauth-complete’),并且可以在 $this->data 中检索到经过验证的身份验证响应数据。为了将控制器路由到处理响应,请在应用程序的 Config/routes.php 文件中添加一个连接器,例如
<?php Router::connect( '/opauth-complete/*', array('controller' => 'users', 'action' => 'opauth_complete') );
然后,您可以在例如 ` APP/Controller/UsersController.php` 文件中处理身份验证数据,如下所示
<?php // APP/Controller/UsersController.php: class UsersController extends AppController { public function opauth_complete() { debug($this->data); } }
请注意,此 CakePHP Opauth 插件已经为您完成了身份验证响应验证,结果以布尔值的形式提供,位于 $this->data[‘validated’] 中。
还有示例吗?
当然。只需 下载此 CakePHP 应用程序 并使用 CakePHP v2.x 库进行设置。
设置完成后,您应该看到:(主页截图)
身份验证后,您应该得到:(回调截图)
有关示例应用程序的更多说明:https://github.com/uzyn/cakephp-opauth/tree/sample
另请参阅
- Opauth.org,快速 Opauth 演示。
- Opauth 文档
- 贡献 Opauth 策略
问题和疑问
- 讨论组:Google Groups 欢迎您在讨论组中发布您的问题。这是主要的支持渠道。
- 问题:Github Issues
- 推特:@uzyn
- 给我发邮件:chua@uzyn.com
- 关于我:U-Zyn Chua
- IRC:Freenode 上的 #opauth