我在cakephp中真的很新。我想知道如何限制用戶打開頁面,如用戶,例如當用戶更改網址時。那麼,我不善於告訴我自己的問題,所以在這裏:當用戶直接更改鏈接時限制訪問Cakephp
例如:用戶ID是1,所以當他查看自己的細節時,它應該是像用戶/視圖/ 1,但我不希望該用戶當他將url更改爲users/view/2時查看用戶#2。我希望你能理解。提前致謝!
我在cakephp中真的很新。我想知道如何限制用戶打開頁面,如用戶,例如當用戶更改網址時。那麼,我不善於告訴我自己的問題,所以在這裏:當用戶直接更改鏈接時限制訪問Cakephp
例如:用戶ID是1,所以當他查看自己的細節時,它應該是像用戶/視圖/ 1,但我不希望該用戶當他將url更改爲users/view/2時查看用戶#2。我希望你能理解。提前致謝!
該解決方案可以通過谷歌找到: http://www.dereuromark.de/2011/10/05/common-cakephp-problems-and-solutions/
基本上,你會得到當前ID:
$uid = $this->Session->read('Auth.User.id');
並將其與正在顯示/編輯的記錄。 如果它們不匹配,則拋出NotAllowedException()。
Protip:如果它是用戶自己的配置文件或者只能由所有者查看,請不要追加編輯/查看等。 您也可以通過同樣的方式獲取上面的ID進行驗證,您還可以使用此會話用戶ID來獲取正確的記錄。
此外,不要將id放入視圖(表單) - 甚至不能作爲隱藏字段 - 但在保存/驗證之前將其注入到數據數組中。
您還可以看到一個當前的CakePHP 2.4實現here - 它也可以通過相應的網站實時查看/測試。
假設您有某個地方的會話中的用戶數據存儲區中存在當前隊列。 的想法是把它和傳遞的ID在URL
比較----在UsersController.php
public function view($id){
if($this->Session->read('User.id') != $id){
// cannot continue...
// possibly redirect....
}
}