有人要求我使用mysql用户在cakephp应用程序中登录。
我希望使用登录表单中的用户名和密码,并在database.php配置文件中这样使用。
class DATABASE_CONFIG {
public $default = array(
'datasource' => 'Database/Mysql',
'persistent' => false,
'host' => 'localhost',
'login' => $user,
'password' => $password,
'database' => 'cakephp',
'prefix' => '',
//'encoding' => 'utf8',
);
}如果可能的话,使用mysql数据库中的现有用户。如果不是的话,还有别的办法吗?
我刚刚发现这个可以添加到这个类中:
function __construct(){
$this->default['login'] = $userSentFromForm;
$this->default['password'] = $passwordSentFromForm;
}但是,我不知道如何从表单中检索登录名和密码,并将其发送到$userSentFromForm和$passwordSentFromForm变量中的构造函数。
发布于 2014-06-05 18:15:10
为此,必须为站点的每个用户创建一个MySQL用户帐户。您可以通过对数据库执行MySQL语句来添加MySQL用户并为他们定义特权,但这必须作为MySQL 'root‘用户来完成。
查阅这个这里上的文档。
由于您通常不希望以root身份访问数据库,因此只有在处理寄存器表单以便为每个新注册创建数据库用户时,才需要以根用户的身份单独连接数据库。
发布于 2014-06-05 18:22:27
为此,您必须执行从Auth继承的自定义身份验证组件。这只需要扩展一种方法,即authenticate(),并在用户登录时返回数据,如果没有,则返回false。
您可以在这里查看更多信息:http://book.cakephp.org/2.0/en/core-libraries/components/authentication.html#creating-custom-authentication-objects
至于检查用户是否是MySQL用户,请检查mysql.user表。完整的过程在这里:如何检索我的MySQL用户名和密码?
https://stackoverflow.com/questions/24067107
复制相似问题