使用 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 应用程序,包含屏幕截图)

如何使用此插件

  1. 下载 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
    
  2. 将此行添加到应用程序的 ` Config/bootstrap.php` 文件末尾

    <?php
    CakePlugin::load('Opauth', array('routes' => true, 'bootstrap' => true));
    

    在上面的行之后,覆盖您想要更改的任何 Opauth 配置。

  3. 策略 加载到 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'
    ));
    
  4. 访问 http://path_to_your_cake_app/auth/facebook 以使用 Facebook 身份验证,其他策略的访问方式与此类似。

  5. 验证后,用户将被重定向到 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

另请参阅

问题和疑问