我一直在嘗試使用RedBean ORM(http://redbeanphp.com)來實現Silex安全提供程序包的UserInterface和UserProviderInterface。Silex/Symfony2記住我身份驗證用戶界面RedBean包裝
由於RedBean ORM爲其對象處理函數的方式,我需要將bean對象封裝在另一個類中。
這對於身份驗證非常有用,但未能通過測試記住我的功能。
我注意到沿着鏈的某個地方,安全包會序列化對象。我想也許這是錯誤的原因,所以我在包裝類中爲「id」和「password」創建了屬性,並使用__sleep和__wakeup方法在睡眠期間忽略了bean,並在喚醒時重新加載它。儘管在__wakeup期間一切看似正常加載,但「記住我」功能的測試仍然失敗。
我已經創建了我的代碼的github存儲庫。如果有人有任何想法,我會很感激!
由於某些原因,RedBean,Silex和PHPUnit不允許自己被包含在存儲庫中。一個簡單的作曲家更新應該把它們拉下來給你。如果任何人有任何想法爲什麼,我會很感激這個答案。
GitHub的倉庫,可以發現:
https://github.com/christianmagill/silex-redbean-security
適用的文件
要在數據庫中創建測試用戶:
/setup.php
要運行測試:
的index.php
我的UserInterface實現的:
/src/App/Model/UserSecurityWrapper.php
我實現UserProviderInterface的:
/src/App/Model/UserProvider.php
我的修改測試:
/src/App/Test/RememberMeRedBeanServiceProviderTest.php
原測試:
/供應商/硅石/硅石/測試/捷希凱/測試/ Provider/RememberMeServiceProviderTest.php