2012-07-17 62 views
2

在我的Rails应用程序中,我使用设计为我的身份验证系统。我有一种情况,我想使用基于用户密码的密钥来加密某些数据。我能想到的最简单的方法是在成功登录的过程中,从其纯文本密码(从登录表单传入)中生成用户的私钥并将其存储在用户的会话中。我并不想让用户多次输入密码。设计:成功登录后钩

设计提供了一种方法来指定成功登录后的回调函数吗?还是有更好的方法来做到这一点?

回答

9

http://rubydoc.info/github/plataformatec/devise/master/Devise/Models/DatabaseAuthenticatable#after_database_authentication-instance_method

在你使用其中设计创建after_database_authentication实例方法的用户模型。

+0

该方法是否可以访问纯文本密码? – jasonlfunk 2012-07-17 16:52:05

+0

与上面相同的问题是通过此方法提供的纯文本密码? – MichaelTaylor3D 2015-02-13 18:52:03

+0

@jasonfunk作为参考,访问纯文本密码的唯一方法是在创建用户记录之前从'resource_params'或类似内容获取它。记录存储并登录后,无法检索纯文本版本。另请参阅:http://stackoverflow.com/questions/15795120/displaying-user-password-with-devise-confirmation-page – nicholasklick 2015-02-18 22:06:42