ruby 代码
- require 'digest/sha1'
- class User < ActiveRecord::Base
-
- attr_accessor :password
-
- validates_presence_of :login, :email
- validates_presence_of :password, :if => :password_required?
- validates_presence_of :password_confirmation, :if => :password_required?
- validates_length_of :password, :within => 4..40, :if => :password_required?
- validates_confirmation_of :password, :if => :password_required?
- validates_length_of :login, :within => 3..40
- validates_length_of :email, :within => 3..100
- validates_uniqueness_of :login, :email, :case_sensitive => false
- before_save :encrypt_password
-
-
- def self.encrypt(password, salt)
- Digest::SHA1.hexdigest("--#{salt}--#{password}--")
- end
-
-
- def encrypt(password)
- self.class.encrypt(password, salt)
- end
-
- def remember_token?
- remember_token_expires_at && Time.now.utc < remember_token_expires_at
- end
-
- protected
-
- def encrypt_password
- return if password.blank?
- self.salt = Digest::SHA1.hexdigest("--#{Time.now.to_s}--#{login}--") if new_record?
- self.crypted_password = encrypt(password)
- end
-
- def password_required?
- crypted_password.blank? || !password.blank?
- end
- end
上面列出经过节选的User模型代码,所有验证一目了然,值得注意的模型类中的password属性,这个实际上并不对应数据库中的column,而是一个虚拟的数据表属性,password从表单的password元素中获得,存到数据表中的是经过加密的密码。
分享到:
相关推荐
安装npm install @haventec/authenticate-web-sdk 一般用法authenticate-web-sdk不会作为默认导出导出,应该为每个用户创建一个实例。 import { HaventecAuthenticate } from '@haventec/authenticate-web-sdk' let ...
vue-authenticate, 简单 Vue.js 身份验证库 [ WARNING ]: 自述文件目前正在重写...身份验证 使用 Vue.js,提供本地登录/注册,以及使用 Github,Facebook,Google和其他OAuth提供商,可以方便地为提供收费的 authentic
2. **前端框架**:由于项目名为“authenticate-me-project”,它很可能使用了某种前端框架来加速开发和增强用户体验。常见的JavaScript框架包括React、Angular和Vue.js。这些框架提供了组件化开发、路由管理、状态...
Dr.COM Authenticate Client Installer网通宽带插件
标题“authenticate-me-aa”可能指的是一个项目或应用,它涉及到...通过深入研究“authenticate-me-aa-main”这个目录下的文件,我们可以进一步了解项目的具体实现细节,包括代码结构、函数逻辑以及所用的库和技术。
免责声明:资料部分来源于合法的互联网渠道收集和整理,部分自己学习积累成果,供大家学习参考与交流。收取的费用仅用于收集和整理资料耗费时间的酬劳。 本人尊重原创作者或出版方,资料版权归原作者或出版方所有,...
标题中的“jboss7.1.1下报java.lang.SecurityException: JCE cannot authenticate the provider BC”是一个典型的Java安全异常,通常发生在尝试使用不受信任的加密提供者时。在这个问题中,"BC"指的是Bouncy Castle...
在与银联的对接中,调试过程中报错或使用类似登入加密:java.lang.SecurityException: JCE cannot authenticate the provider BC 进行问题解决,里面包含 bcprov-jdk16-143.jar与bcprov-jdk15-135.jar与具体文件存放...
2. **使用社区插件**:如果已经有其他人解决了这个问题,那么可能可以在Rust的生态中找到相关的第三方库或者插件,这些插件可能提供了缺失的解析和打印功能。 3. **升级或降级Hyper版本**:根据具体项目需求和Hyper...
vue-authenticate 简单的Vue.js认证库
The reason is you account in window xp did not have "administrator" privacy
4. **LICENSE**:通常包含插件的许可协议,如MIT、GPL等,规定了他人可以如何使用和分发这个软件。 5. **Rakefile**:Rails项目中的任务脚本,用于执行各种维护和构建任务,如数据库迁移或测试。 6. **init.rb**:此...
它已被编写为与 django-git-lfs 配合使用,请参阅: : 要求 Gitolite Perl:JSON 和 LWP (HTTP) 安装 在 gitolite 中设置 LOCAL_CODE。 将 LFS_URL 添加到 .gitolite.rc,例如在 LOCAL_CODE 之后。 例如,这应该...
我们将演示如何使用Watson Assistant,Cloud Functions和Custom API来构建此应用程序。 完成此代码模式后,您将了解如何: 将对话界面构建到任何应用程序,设备或渠道中。 在没有服务器的情况下运行您的应用程序...
框架 2(Java-Mongo-Sample 应用程序) 关于插件的更多信息: PlayAuthenticate Java 和 Mongo 示例应用程序该项目基于 PlayAuthenticate 作者提供的,但它使用 MongoDB 作为数据存储而不是 PostreSQL。插件播放...
"Authenticate-main"这个文件名可能是该认证服务的主要代码入口点,可能包含了实现上述功能的Perl脚本或者配置文件。具体实现方式需要解压文件后查看代码才能了解。通过这个压缩包,你可以学习到如何使用Perl来搭建...
这个名为"swift-一个提供apptouchID的小型react-native插件"的项目,结合了Swift和React Native的优势,为React Native应用引入了Touch ID功能。 Touch ID是苹果设备上的生物识别技术,用户可以通过指纹识别快速...
标题“authenticate-me”很可能指的是一个关于身份验证或授权的项目,可能是一个小型的Web应用或者库,用于处理用户登录、身份验证的过程。在JavaScript环境中,这通常涉及到前端和后端的安全实践。 描述中的...