加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 通过http标头传递真实性令牌

发布时间:2020-12-17 02:34:43 所属栏目:百科 来源:网络整理
导读:我有一个rails应用程序,它使用令牌来验证用户.目前我将令牌作为params传递.我想改变这个.我相信可以通过html标头传递它.我不明白如何使用authenticate_or_request_with_http_token do | token,options |. 我的rails应用程序实际上是我的 iphone客户端的服务
我有一个rails应用程序,它使用令牌来验证用户.目前我将令牌作为params传递.我想改变这个.我相信可以通过html标头传递它.我不明白如何使用authenticate_or_request_with_http_token do | token,options |.
我的rails应用程序实际上是我的 iphone客户端的服务器.我不懂的东西是:

>我知道选项是nonce但是如何解决我的客户端和服务器之间的问题?
>我如何在我的服务器代码中实际使用它.
>我可以使用authenticate_or_request_with_http_token do | token,options |检查标头中的标记,但是一旦成功创建会话,如何将其插入标头.

这是我的服务器会话控制器:

def create
if @user && @user.authenticate(params[:password])
 # @token = @user.auth_token
 @user.auth_token = SecureRandom.hex 
 @user.save
    respond_to do |format|
        format.json {render :json => {:status => "200",:message => "Logged in successfully",:auth_token => @user.auth_token}}
    end
else
    respond_to do |format|
        format.json {render :json => {:status => "401",:message => "wrong credentials"}}
    end
end
  end

  def destroy
    if(@user)
      @user.auth_token = ""
      @user.save
      respond_to do |format|
         format.json {render :json => {:status => "200",:message => "logged out successfully"}}
      end
    else
      respond_to do |format|
         format.json {render :json => {:status => "401",:message => "No User"}}
      end
   end
  end

def user
  @user = User.find_by_auth_token(params[:auth_token])
end

解决方法

要设置自定义标头,请使用response.headers.

就像是

response.headers["X-AUTH-TOKEN"] = auth_token

应该工作..阅读你使用的标题

request.headers["X-AUTH-TOKEN"]

命名中的X-是一个很好的惯例约定,所有自定义标题应该在前面有一个X-.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读