Tag: cookies

在Rails cookie中存储/检索值

我创建了一个SessionHelper模块,看起来或多或少是这样的: module SessionHelper def create_cookie cookies.signed[:token] = { :value => [], :expires => 1.hour.from_now } end def cookie_values cookies.signed[:token] end def add_value_to_cookie(value) cookies[:token] << value end def cookie_exists? cookies[:token].present? end end 然后它被包含到Application控制器中,并在每个请求之前在filter中被触发: create_cookie unless cookie_exists? 我的网站不使用身份validation,我想显示最近由访客创建的项目。 所以,在一个Item控件中我有这样的东西: def create @item=Item.new(params[:item]) if @item.save add_value_to_cookie(@item.id) redirect_to @item else render :new end end 问题如下: 前filter创建一个空cookie,我可以确认它的初始值设置为[](OK) 在用户创建一个项目后,我希望cookie数组有一个额外的值,但它会变成一个Nil,并且不存在任何内容(BAD)。 它甚至没有抛出exception。 我在哪里犯了错误? […]

Rails + Cucumber / Capybara:如何在测试中设置/检索cookie?

我正在实现一个懒惰的登录function。 我的黄瓜function应该描述它: Feature: User log in Scenario: Lazy login Given I didn’t log out the last time I was on the site When I go to the homepage Then I should automatically be logged in 这些是我的步骤定义: Given(/^I didn’t log out the last time I was on the site$/) do user = FactoryGirl.create(:user) visit new_user_session_path fill_in(‘user[email]’, […]

如何在rails中默认使cookie安全(仅限https)?

在Rails控制器中,我可以像这样设置一个cookie: cookies[:foo] = “bar” 并指定“安全”(https-only)标志如下: cookies[:foo, :secure => true] = “bar” :secure默认情况下, :secure为false。 如何在应用程序范围内默认使用cookie? 这是在Rails 2.3.8上

Rspec错误:Sign_in方法模型中#<RSpec的未定义局部变量或方法`cookies'

我的app中没有使用任何gem进行身份validation…所以我的sign_in方法看起来像这样 def sign_in(user) remember_token = User.new_remember_token cookies[:remember_token] = remember_token user.update_attribute(:remember_token, User.encrypt(remember_token)) self.current_user = user end 我在app / helpers / session_helper.rb和spec / support / helpers / session_module.rb下都有这个我需要在我的模型规范中调用sign_in(user)…我得到错误未定义的局部变量或方法` cookies’for

在rails 3和rails 4.1之间共享cookie

我想在Rails 3和Rails 4.1应用程序之间共享cookie。 问题是Rails 3 cookie只是base64编码,但Rails 4.1 cookie是加密的。 有没有办法让Rails 3和Rails 4.1使用兼容的cookie? 目前最简单的方法似乎是降级到Rails 4.0

Rails:如何在多个子域之间共享永久性cookie?

我的应用程序的注册和登录过程发生在安全的子域中。 出于这个原因,我修改了config/initializers/session_store.rb来看起来像 if Rails.env.production? AppName::Application.config.session_store :cookie_store, :key => ‘_app_name_session’, :domain => ‘.app_name.com’ else AppName::Application.config.session_store :cookie_store, :key => ‘_app_name_session’ end 这样就可以跨子域共享会话。 如何在子域之间共享永久性cookie,以便当我通过cookies.permanent[:some_key] = ‘some value’在一个子域上设置永久性cookie时,我可以通过cookies[:some_key]访问另一个子域上的cookies[:some_key] ?

Rails中签名和加密的cookie有什么区别?

ActionDispatch::Cookies的文档为签名cookie和加密cookie提供了几乎相同的描述。 看来两者都使用secrets.secret_key_base来防止客户端篡改。 http://api.rubyonrails.org/classes/ActionDispatch/Cookies.html 签名cookies 设置已签名的cookie,以防止用户篡改其值。 Cookie由您的应用的secrets.secret_key_base值签名。 它可以使用签名方法cookies.signed[:name]来读取 cookies.signed[:user_id] = current_user.id 加密的cookie 在将加密的cookie值发送到客户端之前设置它,以防止用户读取和篡改其值。 Cookie由您的应用的secrets.secret_key_base值签名。 它可以使用加密的方法读取cookies.encrypted[:name] cookies.encrypted[:discount] = 45 我的问题是:两者有什么区别? 你什么时候想用另一个?

在rails 3.1上,Rspec中的Cookie不会存在

这是以下环境中控制器规范中的cookie集合的问题: rails 3.1.0.rc4 rspec 2.6.0 rspec-rails 2.6.1 我有一个简单的控制器规范,它创建一个Factory用户,调用一个设置cookie的登录方法,然后测试以查看登录用户是否可以访问页面。 问题是所有cookie似乎都在设置的身份validationcookie和我的控制器上调用的“show”操作之间消失。 在rails dev服务器上的浏览器中运行时,我的代码工作正常。 运行规范时更奇怪的行为是,通过cookie哈希设置的所有内容都会消失,但通过会话哈希设置的所有内容都会持续存在。 我只是错过了使用rspec时cookie的工作方式吗? 规格代码 it “should be successful” do @user = Factory(:user) test_sign_in @user get :show, :id => @user response.should be_success end 登录代码 def sign_in(user, opts = {}) if opts[:remember] == true cookies.permanent[:auth_token] = user.auth_token else cookies[:auth_token] = user.auth_token end session[:foo] = “bar” cookies[“blah”] = […]

为什么我得到未定义的方法`cookies’?

我正在尝试使用single_access_token为我的rails后端应用程序设置Authlogic(我正在使用rails-api gem)。 我正在关注这个例子: http : //blog.centresource.com/2013/06/04/using-ember-auth-with-rails-3-and-authlogic/ 到目前为止,我能够创建用户,但是当我尝试登录时,它在user_session.save上失败 : NoMethodError in Api::V1::UserSessionsController#create undefined method `cookies’ for # 根据我在这里找到的类似问题,我必须将Authlogic配置为: acts_as_authentic do |c| c.login_field = :email c.maintain_sessions = false end 在我的用户模型上。 然而,它一直在失败。 我假设当UserSession被保存时,Authlogic尝试更新User上的魔术字段,但我不知道为什么还在尝试使用cookie。

确保用户使用cookieStore和AngularJS登录或注销的最佳实践

现在我正在Ruby on Rails上构建一个基于AngularJS的应用程序,并使用Devise进行身份validation。 当用户成功进行身份validation以及身份validation失败时,我让服务器正确响应。 我想我的问题是,使用$ cookieStore,了解用户是否登录的最佳做法是什么? 有一个由Rails设置的cookie称为“myapp_session”,但该会话并不一定意味着用户已登录。寻找有关如何使用AngularJS来保持用户在线/离线管理的想法。 无论解决方案如何,我仍然会确保需要授权的请求得到后端的授权。