0

我正在为应用程序使用 yii 框架,我需要一组用户通过远程服务器进行身份验证。

我的应用程序中的用户角色很少。例如:

  • 超级管理员
  • 品牌管理员
  • 客户等...

所有客户记录都在远程 MySQL 数据库中。我必须通过我的 yii 应用程序对客户进行身份验证。我的 yii 应用程序将托管在不同的服务器上。

请假设我可以在远程服务器中放置一个 php 脚本来响应我的发布请求。

我是否需要编写自己的 UserIdentity 类来执行此操作?

请帮助我。谢谢

4

2 回答 2

2

我认为您不需要在远程服务器中放置任何脚本,您所需要的只是

1. Access the remote Db, and Yii allows the use of [multiple-databases][1].
2. Adjust the model(s) you are using for Authentication/Authorization (usually the User model) to load it's data from the remote database

对于第一个任务:

// protected/main/config.php

return array(
...
'components' => array(
    'db' => array(
        'connectionString' => 'mysql:host=dbserver1;dbname=my1db',
        ...
    ),
    'remotedb' => array(
        'connectionString' => 'mysql:host=adserver2;dbname=advertisingDB',
        'username'         => 'username',
        'password'         => '***********',
        ...
        'class'            => 'CDbConnection'          // DO NOT FORGET THIS!
    ),

对于第二个任务:

对于您用于Authenticate & Authorize的模型,您将需要重写该getDbConnection()函数以从远程服务器加载所需的数据。查看Wiki了解如何

是的。您将需要编写自己的UserIdentity类,即使您没有使用远程 Db,这实际上也是一项常规任务,因为它的默认逻辑只是一个示例,不适用于实际生产站点。

祝你好运!

于 2012-08-17T12:51:01.203 回答
0

是的,您将不得不重写组件 UserIdentity 并创建自己的规则身份验证。

于 2012-08-17T11:29:59.987 回答