返回Devise on API的remember_user_token

时间:2017-02-01 04:59:43

标签: ruby-on-rails ruby ruby-on-rails-4 devise remember-me

我有Devise的Rails应用程序,它有iOS应用程序的登录API 用户模型是值得记住的 我的iOS应用程序使用webview将rails app视为网站,
所以 我想从登录API返回用户的 remember_user_token (在Web浏览器上,设计似乎将其自动设置为Cookie)。

在登录API中,我想获得 remember_user_token ,但我不知道如何操作。

user.remember_token

是20个字符,但在网络浏览器中,Cookie中的 remember_user_token 为114个字符。看来他们很难 设计或Rails加密令牌?

我的应用代码在这里。

模型/ user.rb

# Table name: users
#  remember_created_at        :datetime
#  remember_token             :string(255)
class User < ActiveRecord::Base
  devise :database_authenticatable, :encryptable, :rememberable, :confirmable, :trackable, :recoverable, :timeoutable
end

API / sessions_controller.rb

module Api  
  class SessionsController < Devise::SessionsController
    layout false
    skip_before_action :verify_authenticity_token

    def create
      catch(:warden) do
        self.resource = warden.authenticate!
        sign_in(resource_name, resource)

        render json: { remember_user_token: remember_user_token }
        return
      end

      render json: { error: "error message" }
    end
  end
end

任何建议都会得到满足 谢谢!

0 个答案:

没有答案