类似struts的token,使用session保存token,调用check_token后就把session里的token清掉,所以不能重复调用。
因为有些界面可能会有多个表单,这些表单最好共用同一个token,不然提交过来的token很难验证,所以这里做了处理,不会多次生成。
module ApplicationHelper
def token_field
hidden_field_tag(:__token__, (@__token__ ||= (session[:__token__] =
Digest::SHA1.hexdigest((Time.now.to_i + rand(0xffffff)).to_s)[0..39])))
end
end
class ApplicationController < ActionController::Base
def check_token
if session[:__token__] == params[:__token__]
session[:__token__] = nil
session.update
return true
end
false
end
end
<%= form_tag(:controller => "test", :action => "test") %>
<%= token_field %>
<%= submit_tag "提交" %>
</form>
检查token:
#方法1:
class TestController < ApplicationController
def test
unless check_token
return redirect_to("/")
end
#...
end
end
#方法2:
class TestController < ApplicationController
before_filter :check_token, : only => ["test"], : redirect_to => "/"
def test
#...
end
end
分享到:
- 2006-12-07 16:35
- 浏览 4556
- 评论(0)
- 论坛回复 / 浏览 (0 / 5898)
- 查看更多
相关推荐
一个用Ruby on Rails搭建的图片分享的网站项目.完整源代码
rails 项目起步示例 同新手共同进步
Simple Form - 轻松处理Rails表单
通过将许多ActiveModel::Validation功能移植到JavaScript,Judge可以轻松地对Rails进行客户端表单验证。 最常见的验证通过存储在HTML5数据属性中的JSON字符串进行,并且仅在客户端执行。 无论您在何处,Judge都为...
Redmine 搭建 Ruby_Ruby_on_Rails 项目管理系统
NULL 博文链接:https://zyn-zyn.iteye.com/blog/1163143
rails的经典学习项目,ruby on rails打包的程序 rails的经典学习项目,ruby on rails打包的程序 rails的经典学习项目,ruby on rails打包的程序
开箱即用的 Rails 项目模板:深度整合修改后的 swagger-docs,帮助简化业务逻辑无关或边界的事情、干掉更多重复劳动,使开发专注于简洁的业务逻辑。
基于Ruby语言的Ruby on Rails项目及其代码方案,随便拿走
升级Rails的?这是一个很好的时间来重构你的代码
rails常用命令,例如新建rails项目,新建controller、model 等等
rails 2.3.2离线安装rails 2.3.2离线安装rails 2.3.2离线安装rails 2.3.2离线安装rails 2.3.2离线安装rails 2.3.2离线安装rails 2.3.2离线安装rails 2.3.2离线安装rails 2.3.2离线安装rails 2.3.2离线安装rails ...
收集了常用RAILS学习的网址 收集了常用RAILS学习的网址
bower-rails, 在 Rails 上,为 Bower 设置类似 DSL + rake任务 rails Bower 对 Rails 项目的支持。 依赖文件是 Rails root 目录中的bower.json,如果使用 DSL,则为 Bowerfile 。 查看最新变更和发布的变更日志文件...
条目器AngularJS的Rails脚手架示例安装耙数据库:创建耙数据库:迁移耙db:种子耙式凉亭:安装滑轨打开浏览器并享受;)测验规格必须使用一个... 如果未指定名称,则需要在名称字段中添加验证,并在提交表单时显示错误。
《Ruby on Rails Tutorial》中文版(原书第2版,涵盖 Rails 4) Ruby 是一门很美的计算机语言,其设计原则就是“让编程人员快乐”。David Heinemeier Hansson 就是看重了这一点,才在开发 Rails 框架时选择了 Ruby...
[Pragmatic Bookshelf] Crafting Rails Applications Expert Practices for Everyday Rails Development (E-Book) ☆ 图书概要:☆ Rails 3 is a huge step forward. You can now easily extend the framework, ...
Ruby on Rails Guides v2 - Ruby on Rails 4.2.5
NULL 博文链接:https://edisonlz.iteye.com/blog/490853