У меня есть база данных со следующими таблицами:
CREATE TABLE `visitors` (
`name` varchar(64) not null,
`id` int(10) unsigned not null auto_increment,
# ...more fields here
PRIMARY KEY (`id`),
UNIQUE KEY (`name`)
);
CREATE TABLE `credentials` (
`id` int(10) unsigned not null auto_increment,
`visitor_id` int(10) unsigned,
`type` enum('password','openid','google','facebook') not null,
`token` char(40) not null,
`modified` datetime,
`hint` varchar(64),
PRIMARY KEY (`id`),
KEY `visitor` (`visitor_id`),
KEY `token` (`token`)
);
Подумав некоторое время об этом, я решил, что это "правильно", например, нормализация и предоставление посетителям нескольких учетных данных, включая несколько паролей.
Однако я хотел бы использовать функции ACL Cake, и AuthComponent предполагает, что хешированные пароли хранятся в той же таблице, что и информация о пользователе (посетителе). Какой лучший способ обойти это? Нужно ли использовать Auth-> login (), или есть лучший способ?