2011-10-23 51 views
2

我有以下各表數據庫:如何在CakePHP中使用單獨的表進行身份驗證的密碼?

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`) 
); 

考慮這個了一段時間後,我決定,這是「正確」的如規範化並允許訪問者擁有多個登錄憑證,包括多個密碼。

但是,我想使用Cake的ACL功能,並且AuthComponent假定哈希密碼與用戶(訪客)信息存儲在同一個表中。解決此問題的最佳方法是什麼?我必須使用Auth-> login(),還是有更好的方法?

+1

看看http://stackoverflow.com/questions/1677532/cakephp-auth-component-using-2-tables – minaz

回答

0

如果您使用的是CakePHP 2.x,那麼可以通過創建一個新的身份驗證處理程序來簡化歸檔。查看現有的表單處理程序也可以幫助你。您應該能夠擴展它或將代碼複製到新的處理程序中,並對其進行修改以符合您的需求。

Read the authentication chapter in the book.它只是創建自定義處理程序的一部分,但瞭解整個事情的工作原理我建議您閱讀整個頁面。

相關問題