我被要求使用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变量中的构造函数。
答案 0 :(得分:0)
为此,必须为站点的每个用户创建一个MySQL用户帐户。您可以通过对数据库执行SQL语句来添加MySQL用户并为他们定义权限,但这必须以MySQL' root'用户。
请参阅此here上的文档。
由于您通常不希望以root用户身份访问数据库,因此只有在处理注册表单以为每个新注册创建数据库用户时,才需要以root身份单独连接到数据库。
答案 1 :(得分:0)
为此,您必须执行从Auth
继承的自定义身份验证组件。这只需要扩展一个方法authenticate()
,并在用户登录时返回用户数据,如果没有,则返回false。
您可以在此处查看更多信息:http://book.cakephp.org/2.0/en/core-libraries/components/authentication.html#creating-custom-authentication-objects
至于检查用户是否是MySQL用户,请检查mysql.user
表。
完整流程如下:How do I retrieve my MySQL username and password?