我正在为应用程序使用 yii 框架,我需要一组用户通过远程服务器进行身份验证。
我的应用程序中的用户角色很少。例如:
- 超级管理员
- 品牌管理员
- 客户等...
所有客户记录都在远程 MySQL 数据库中。我必须通过我的 yii 应用程序对客户进行身份验证。我的 yii 应用程序将托管在不同的服务器上。
请假设我可以在远程服务器中放置一个 php 脚本来响应我的发布请求。
我是否需要编写自己的 UserIdentity 类来执行此操作?
请帮助我。谢谢
我正在为应用程序使用 yii 框架,我需要一组用户通过远程服务器进行身份验证。
我的应用程序中的用户角色很少。例如:
所有客户记录都在远程 MySQL 数据库中。我必须通过我的 yii 应用程序对客户进行身份验证。我的 yii 应用程序将托管在不同的服务器上。
请假设我可以在远程服务器中放置一个 php 脚本来响应我的发布请求。
我是否需要编写自己的 UserIdentity 类来执行此操作?
请帮助我。谢谢
我认为您不需要在远程服务器中放置任何脚本,您所需要的只是
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,这实际上也是一项常规任务,因为它的默认逻辑只是一个示例,不适用于实际生产站点。
祝你好运!
是的,您将不得不重写组件 UserIdentity 并创建自己的规则身份验证。