首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从Rails获取authenticity_token

从Rails获取authenticity_token
EN

Stack Overflow用户
提问于 2014-04-02 19:40:45
回答 1查看 3.2K关注 0票数 3

我在Ruby中有一些身份验证(来自这个教程 --使用gem "bcrypt-ruby", :require => "bcrypt",我需要将authenticity_token写到json文件中。我怎样才能得到它并创建这个文件?

更新:我写了:

代码语言:javascript
复制
  json.array!(@session) do |session|
      json.extract! session, :csrf-token
      json.url tag_url(session, format: :json)
    end

但不起作用。我需要从html写

代码语言:javascript
复制
<meta content="authenticity_token" name="csrf-param" /> <meta content="74Mhbpn9FF/tY/cgfuVmX7ribN4rOkkdUjSgbLNsces=" name="csrf-token" />

此值: 74Mhbpn9FF/tY/cgfuVmX7ribN4rOkkdUjSgbLNsces=

这是我的session_controller:

代码语言:javascript
复制
class SessionsController < ApplicationController
  def new
end

def index
  @session
end

def create
  user = User.authenticate(params[:email], params[:password])
  if user
    session[:user_id] = user.id
    redirect_to root_url, :notice => "Logged in!"
  else
    flash.now.alert = "Invalid email or password"
    render "new"
  end
end

def destroy
  session[:user_id] = nil
  redirect_to root_url, :notice => "Logged out!"
end
end
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-02 20:25:30

有一个名为form_authenticity_token的视图助手,它访问或分配令牌,如下所示

代码语言:javascript
复制
def form_authenticity_token
  session[:_csrf_token] ||= SecureRandom.base64(32)
end

若要在控制器中获取它,请使用session[:_csrf_token]

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22821368

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档