Rails实现一个blog项目02-登录功能和session的实现
来源:互联网 发布:windows hello 编辑:程序博客网 时间:2024/06/16 07:32
1.首先生成model user
rails g model user login:string hashed_password:string salt:string
去schema.rb检查无误后就近行数据的迁移
这个博客暂时不开放注册,利用console增加用户
2.为user的login增加数据验证
def password @password end def password=(pass) #password的set方法 return unless pass #pass为空直接返回false @password = pass generate_password(pass) #产生实际的密码 end private def generate_password(pass) salt = Array.new(10){rand(1024).to_s(36)}.join #加盐 self.salt ,self.hashed_password = salt,Digest::SHA256.hexdigest(pass + salt) #利用SHA256进行加密 了 end
3. 这一步去做登录的功能,先生成sessions的controller
rails g controller sessions
4.添加路由
resources :sessions
5.在sessions控制器中建立new和create两个action
6.建立登录页面
<h1>Admin Login</h1><%= form_tag sessions_path do -%> <label for="login">Login</label> <%= text_field_tag :login , params[:login] %> <label for="password">Password</label> <%= password_field_tag :password , params[:password] %> <%= submit_tag "Login" %><% end %>
7.在Model中实现密码认证方法
def self.authentication(login,password) user = User.find_by_login(login) if user && Digest::SHA256.hexdigest(password + user.salt) == user.hashed_password return user else false end end
8.实现具体的create方法
def create @user = User.authentication(params[:login],params[:password]) if @user session[:user_id] = @user.id flash[:notice] = "Welcome #{@user.login}" redirect_to posts_path else flash[:notice] = "The login or password is not corrent." redirect_to new_session_path end end
- Rails实现一个blog项目02-登录功能和session的实现
- Rails实现一个blog项目02-登录功能和session的实现
- Rails实现一个blog项目01-基本功能blog和comment的实现
- Rails实现一个blog项目01-基本功能blog和comment的实现
- rails 实现登录和注册功能
- session实现登录功能
- 【Rails学习笔记】登录和退出功能实现
- 【Rails学习笔记】登录和退出功能实现
- session实现登录注销功能
- spring session和Redis数据库实现单点登录功能
- javaWeb的session和cookie实现记住密码自动登录功能简单实例
- 使用session实现登录判断功能
- 登录功能的实现
- rails实现功能示例
- 用Redis实现Session功能,实现单点登录
- 超详细asp.net实现一个完整的登录功能
- jsp+javaBean+servlet+mysql完整的实现一个登录功能
- 自动登录功能的实现
- linuxs 下的yii入门笔记(一)
- JS基本数据类型和引用类型的参数传递详细分析
- Serializable 和 Parcelable 区别
- 基本数值计算秦九韶算法
- unity动态加载远程资源
- Rails实现一个blog项目02-登录功能和session的实现
- API汇总 - JAVA
- github上readme.md格式
- 杂七杂八2
- kernel------理解inode
- QT端口扫描
- java中的反射机制及其它知识点
- platform简单研究
- linux中fork()函数详解