ruby-on-rails – 设计不带会话cookie的token_authenticatable
发布时间:2020-12-17 02:04:12 所属栏目:百科 来源:网络整理
导读:我正在使用Rails 3,并且我已经成功构建了一个web api.对于一堆控制器,需要登录,所以我决定使用Devise和token_authenticable.它工作但不完全像我期望的那样:我虽然需要为每个请求提供我的登录令牌,但它看起来只需要一次,然后系统在响应中创建一个cookie,就像
我正在使用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."} return end # 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 基本上不记录用户,但检索令牌.除了退出之外的其他应用程序工作正常. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- objective-c – 在NSArray中搜索最近的数字
- CKEditor 3.0安装配置使用
- ruby-on-rails – configuration.rb:140:在`const_get’中
- ruby-on-rails – Eventmachine start_tcp_server没有接受者
- Flex源码地址
- ceph 热迁移 live_migrate-XML error: CPU feature `pdpe1g
- 数组 – 以n,m,o组或更多组分组的数组
- 什么使Cassandra(和NoSQL一般)更好的解决RDBMS?
- ruby-on-rails – 重新生成simple_form undefined方法attac
- c# – 如何通过语言文化获取代码页?