2015-08-21 46 views
0

目前,我在Web應用程序的註冊功能使用Rails 4.基本上工作,工作流程將是如下:無法會話數據存儲到Cookie,併發送回服務器

  1. 用戶填寫註冊表單並提交給服務器
  2. 註冊請求,那麼將由處理創建UserController的
  3. 會話數據的方法將被然後存儲在cookie,併發送回服務器保留請求之間的會話數據。

然而,試圖在註冊後觀察響應頭的時候,我沒有看到的Set-Cookie財產。事實上,當前的cookies不會爲服務器存儲任何會話數據以實現會話。下面是我的代碼:

users_controller.rb

class UsersController < ApplicationController 
    ... 
    def create 
     @user = User.create(user_params) 

     # set session 
     log_in @user 

     render 'index' 
    end 
    ... 
    end 

application_controller.rb

class ApplicationController < ActionController::Base 
    # Prevent CSRF attacks by raising an exception. 
    # For APIs, you may want to use :null_session instead. 
    protect_from_forgery with: :null_session 
    include SessionHelper 
    end 

session_helper.rb

module SessionHelper 


    # Log in a given user 
    def log_in(user) 
     # Send session stored in a temporary cookie to browser 
     # By default, cookie will be storage mechanism for session 
     session[:user_id] = user.id 
    end 

如果有人能夠解釋問題的根源並給我一些解決方法,我會很感激。

回答

0

您是否嘗試過application_controller中沒有參數with: :null_session

+0

嗨。是的,我也嘗試過。但事情依然沒有奏效 –

0

每個人。

已經做了一些研究之後,我已經加入skip_before_action找到了一個解決辦法:verify_authenticity_tokenUserController中繞過authenticity_token如下:

class UsersController < ApplicationController 

    # To make the sesson get reset 
    skip_before_action :verify_authenticity_token 
end 

非常感謝你的關注。

問候。

相關問題