我正在尋找一些關於如何爲我的應用程序創建安全身份驗證/授權模型的建議。我正在爲CakePHP編寫此代碼,但希望能夠將此模型應用於任何應用程序。如果我能得到關於我的模型的意見以及如何使它更好,我會非常感激。這是我有:創建安全身份驗證/授權模型
,我要保護每個視圖具有下面的代碼是它的控制器:
$getUser= $this->Session->read('get_logged_user');
if($getUser == null){
//no credentials, redirect
$this->render('../Elements/User/login');
}else{
if($getUser->isAuthenticated==false){
//not authenticated
$this->render('../Elements/User/login');
}else{
//its ok, show the page. if needs to check roles, iterate of the roles array
}
}
從本質上講,我檢查,看看是否正確的會話可用。如果沒有,他們從不登錄,因此重定向到登錄頁面。如果是這樣,請檢查授權。我的會話是由以下內容組成的類:名/姓,用戶名,角色數組和isAuthenticated布爾值。當用戶登錄到我的應用程序時,此對象被創建並投入會話。該類對數據庫進行身份驗證,並將用戶的所有重要信息(名稱,角色等)撤回。應用可以進一步使用角色來確定用戶可以看到和看不到的內容以及與之交互的內容。當用戶點擊「註銷」按鈕時,會話對象被破壞。
此方法是否安全?我還應該使用令牌還是什麼?如果需要更多代碼,請告訴我,我可以發佈它。我知道cakePhp有一個安全插件,但我寧願從頭創建自己的。
謝謝!
建議 - 不要從頭創建自己的。認證是一件嚴肅的事情 - 讓專家們來源推廣它。不要聽起來居高臨下,但如果你不能自己做出這些簡單的決定,那麼你還沒有足夠的知識來製作你自己的。只要學習好的學習 – jmadsen
你好,我感謝你的關注,但我寫這是爲了我自己的個人知識。我想了解更多關於創建安全應用程序的信息,並認爲創建我自己的模型會比使用罐裝解決方案更有用。 – jason
這很好聽 - 然後最好的事情是研究幾個好的現有模型,並理解他們爲什麼做出他們做的選擇。從互聯網隨機建議不會是非常值得信賴 – jmadsen