我正在開發一個系統,其中包含許多角色,其中一個角色是ADMIN
,它可以訪問系統的關鍵部分,我想限制用戶的會話,當他/她不與系統交互一定時間時間,會話過期,下一次他/她應該再次登錄,我該怎麼做?Rails/Devise - 如何在「x」分鐘不活動之後註銷用戶?
0
A
回答
7
設計有timeoutable模塊,您可以使用。
在你User
模型,你將包括:timeoutable
你devise
模型,並在devise.rb
初始化將配置它媲美:
# ==> Configuration for :timeoutable
# The time you want to timeout the user session without activity. After this
# time the user will be asked for credentials again. Default is 30 minutes.
config.timeout_in = ENV['YOUR_TIME'].to_i.minutes
如果你想與您的用戶類型,您可以添加一個更靈活方法是這樣的你User
型號:
def timeout_in
if self.type == 'Admin'
45.minutes
else
60.minutes
end
end
將被用來代替你設置timeout_in
r初始化程序。
1
編輯:我的第一個迴應類似於下面線程中的第一個回答,但該線程中的第二個回答可能更適合。由於它直接與session_store一起工作。
這裏是一個有用的StackOverflow的鏈接,可以提供額外的信息:Rails 4: Session Expiry?
該文件對可供會話操作方法的一些信息:http://api.rubyonrails.org/classes/ActionDispatch/Session/CookieStore.html
相關問題
- 1. 自動註銷用戶後#分鐘不活動
- 2. 15分鐘後如何註銷用戶?
- 3. 在yii2中不活動5分鐘後自動註銷
- 4. 在N分鐘不活動後,將用戶從Django站點註銷
- 5. 在沒有活動x分鐘後將應用程序從後臺移除時註銷用戶
- 6. 如何在3分鐘後註銷一個jsp頁面,如果它不活動3分鐘?
- 7. 15分鐘後自動註銷c#
- 8. 30分鐘後如何註銷無用戶?
- 9. 由於在android中不活動而導致15分鐘後自動註銷
- 10. 註銷活動用戶
- 11. 我的用戶在15-20分鐘後自動註銷,我不想那
- 12. 用戶不活動註銷PHP
- 13. 如何在註銷時銷燬活動?
- 14. 註銷用戶如果不觸摸應用程序20分鐘
- 15. 會話在30分鐘內註銷,與活動無關
- 16. 使用zend框架12小時不活動後註銷用戶
- 17. MySQL - 在X分鐘不活動後更改字段值
- 18. 用戶類型(Yii 1.x)x秒後自動註銷會話
- 19. ASP.Net Forms Authentication 10分鐘後註銷用戶
- 20. 如何在MVC4中用戶空閒時間爲5分鐘時自動註銷?
- 21. 如何用戶不活動,註銷或會話結束
- 22. Twitter.com如何在註銷緩存後註銷用戶?
- 23. 強制非活動用戶註銷
- 24. Javascript - 非活動用戶註銷
- 25. 如何在AccessDenied異常之後註銷用戶? (設計)
- 26. 如何自動註銷CMS中的非活動用戶PHP
- 27. 我如何在PHP如果閒置10分鐘,使用會話註銷用戶
- 28. 如何使用活動從Facebook註銷
- 29. 如何在5分鐘不活動後更改頁面位置
- 30. 如何自動註銷Android應用程序,如果它未被觸摸(不活動)30分鐘?
或'ENV.fetch('YOUR_TIME',5).to_i.minutes'如果你想要一個默認值而不是一個神祕的NoMethodErrror – max
好的方法,但我所有的角色都只需要一個'User'模型,用不同的'type_id';儘管我已經想出了另一個解決方案['gem'activerecord-session_store''](https://github.com/rails/activerecord-session_store)來超時用戶會話,但接受你的答案是有什麼辦法的只讓不同的用戶類型使你的解決方案動態化? – dariush
@dariush我更新了答案,希望能夠充分回答你的問題 – jdgray