ruby-on-rails – 设计不带会话cookie的token_authenticatable

ruby-on-rails – 设计不带会话cookie的token_authenticatable,第1张

概述我正在使用Rails 3,并且我已经成功构建了一个web api.对于一堆控制器,需要登录,所以我决定使用Devise和token_authenticable.它工作但不完全像我期望的那样:我虽然需要为每个请求提供我的登录令牌,但它看起来只需要一次,然后系统在响应中创建一个cookie,就像普通的浏览器会话一样.我想实现类似facebook graph api的东西,其中每个请求都需要提交会话令牌 我正在使用Rails 3,并且我已经成功构建了一个web API.对于一堆控制器,需要登录,所以我决定使用Devise和token_authenticable.它工作但不完全像我期望的那样:我虽然需要为每个请求提供我的登录令牌,但它看起来只需要一次,然后系统在响应中创建一个cookie,就像普通的浏览器会话一样.我想实现类似facebook graph API的东西,其中每个请求都需要提交会话令牌才能工作.

是否有任何标志可以设置为指示Devise如果我使用web API并且如果我正在使用浏览器时发送会话cookie则不发送会话cookie?

解决方法 我有同样的问题.

我的API的Sessions控制器中有一行:

warden.authenticate!(:scope => resource_name,:recall => "#{controller_path}#failure")

它记录了用户并创建了一个会话(我最初没有注意到)

解决方案是使用与此类似的东西(在blogpost中找到):

@user=User.find_by_email(email.downcase)if @user.nil?  render :status=>401,:Json=>{:message=>"InvalID email or password."}  returnend# http://rdoc.info/github/plataformatec/devise/master/Devise/Models/TokenAuthenticatable@user.ensure_authentication_token!if not @user.valID_password?(password)  logger.info("User #{email} Failed signin,password \"#{password}\" is invalID")  render :status=>401,:Json=>{:message=>"InvalID email or password."}else  render :status=>200,:Json=>{:token=>@user.authentication_token}end

基本上不记录用户,但检索令牌.除了退出之外的其他应用程序工作正常.

总结

以上是内存溢出为你收集整理的ruby-on-rails – 设计不带会话cookie的token_authenticatable全部内容,希望文章能够帮你解决ruby-on-rails – 设计不带会话cookie的token_authenticatable所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1268511.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存