php - 如何使用动态用户属性配置用户认证?

标签 php mysql cakephp authentication

我是 CakePHP 的新手,我想从自定义库迁移到 CakePHP。

在我的自定义库上,我有这样的用户属性:

auth_users 表来了解“user_ids”:

CREATE TABLE IF NOT EXISTS `auth_users` (
  `id` int(11) NOT NULL,
  UNIQUE KEY `id` (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

auth_user_attributes 表存储“用户属性”:

CREATE TABLE IF NOT EXISTS `auth_user_attributes` (
  `user_id` int(11) NOT NULL,
  `attribute` text NOT NULL,
  `value` text NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

因此,每当我想要通过 user_id 获得用户时,我的自定义库都会将 $system->auth->user->get(1) 返回到:

Array(
    'fullname' => 'José Moreira',
    'username' => 'Cuss',
    ...
)

如果我想保存用户,我有两种方法,保存整个数组 $system->auth->user->save(user_id,user_attributes_array) 或按属性 $system->auth->user->put(user_id, user_attribute, user_attribute_value)

我怎样才能在 CakePHP 上做这样的事情?

最佳答案

我建议您重新设计架构以适应 CakePHP 约定。否则你会失去很多自动魔法,如果没有人强制你,我认为你迁移到 Cake 是没有意义的。 用户 不能有多个全名用户名。没有理由将 fullnameusername 放入另一个表中。关注 Simple Authentication and Authorization Application turorial这样你就不会感到疼痛。

然后可以通过调用User->UserAttribute->saveMany()来保存用户属性.

关于php - 如何使用动态用户属性配置用户认证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12783059/

相关文章:

mysql - 为什么 MySQL 插入这么慢?

cakephp - 在 Cake PHP 2.x 中 - 如何包含存储在 Components 文件夹的子文件夹中的组件?

php - 是否可以将 "marry"Eclipse PHP 与 Java EE 结合使用?

php - PHP 数组中的 MySQL SELECT 查询

php - 如何使用 zend 框架创建站点地图?

authentication - 在 default.ctp 中显示当前登录用户的最佳方式?

cakephp - 使用 CakePHP 和河豚更改密码

PHP base64_decode 保存损坏的图像

php - 如何解决下面的查询以及使用 IN 运算符的目的是什么

mysql - 在整个表中使用唯一行选择的 Hibernate 查询