1
這個Rails項目有一個API端發送數據到iOS版本的應用程序。它使用Devise :: Lockable在用戶帳戶登錄失敗三次時鎖定用戶帳戶。Rails:通過未經授權的請求持續參數?
這是一個奇怪的邊緣情況,但可能並不罕見:情況始於已登錄到桌面版本。如果我然後在iOS應用程序中登錄失敗3次,但從桌面版本單擊我的電子郵件中的重置密碼鏈接,因爲我已經登錄,所以對edit_password_url的請求未經授權(因爲該帳戶被鎖定),我被重定向到登錄頁面。
什麼是我可以讓它仍然去edit_password_url同時保持參數(特別是密碼重置令牌)?我想無論是:
- 跳過驗證密碼編輯頁面(似乎不好,但我仍然沒有看到如何做到這一點)
- 創建一些一系列的檢查請求的過濾器,然後重定向回 到edit_password_url ...但我如何保留重置密碼 令牌?
- 或者,我可以以某種方式在該用戶通過API登錄失敗的過程中,在主應用程序 中強制退出用戶。但是這些是命名空間和不同的控制器下,我還沒有找到一種方法來強制簽名。
這是如此接近,我認爲這會,如果我沒有使用spree_auth_devise工作。你熟悉嗎?我想編輯我的密碼控制器到你已經顯示的類似的東西,但是文件開始是這樣的:'Spree :: UserPasswordsController.class_eval do'而不是'UserPasswordsController:edit'放入,但它仍然是驗證和重定向。有任何想法嗎? –
batmanbury
您可以擴展'Spree :: UserPasswordsController',但您需要使用'skip_before_filter'。 'before_filter'(或者更好的'before_action')不會覆蓋以前的聲明......你試過了嗎? – aceofspades
我明白了。 「跳過」部分似乎不直觀。所以:'skip_before_filter:require_no_authentication,只:[:編輯]'實際上會跳過驗證? – batmanbury