Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 目前没有使用DesiveTokenAuth和Ionic的Rails API的_用户_Ruby On Rails_Devise_Ionic - Fatal编程技术网

Ruby on rails 目前没有使用DesiveTokenAuth和Ionic的Rails API的_用户

Ruby on rails 目前没有使用DesiveTokenAuth和Ionic的Rails API的_用户,ruby-on-rails,devise,ionic,Ruby On Rails,Devise,Ionic,我正在尝试访问设备:验证用户我的API中的方法。我已经遵循了,但是当通过Ionic with json访问时,我无法访问API控制器中的current_uservariable/helper方法 User.rb模型: 修正 在ApplicationController中删除防止伪造 我已将其设置为空会话,这会以某种方式从Desive设置中删除cookie和/或当前用户。。。。但是如果你删除了protect\u from\u forgery,你仍然可以防止伪造吗?…我已经有一段时间没有开发这个演

我正在尝试访问设备
:验证用户我的API中的方法。我已经遵循了,但是当通过Ionic with json访问时,我无法访问API控制器中的
current_user
variable/helper方法

User.rb模型:

修正

在ApplicationController中删除
防止伪造


我已将其设置为空会话,这会以某种方式从Desive设置中删除cookie和/或当前用户。

。。。但是如果你删除了
protect\u from\u forgery
,你仍然可以防止伪造吗?…我已经有一段时间没有开发这个演示应用程序了,但是我认为Rails的
protect\u from\u forgery
方法在这种情况下的最大问题是调用的
verify\u same\u origin\u\u请求
方法。我们有很多跨源请求失败。现在查看源代码,我们能够保持
保护\u免受伪造
方法。不记得我们是如何解决这个问题的!现在想想,我会选择Rails+React本机设置。:)
class User < ActiveRecord::Base
include DeviseInvitable::Inviter
devise :database_authenticatable, :recoverable, :rememberable,
     :trackable, :validatable, :omniauthable, :timeoutable,
     :invitable, :invite_for => 2.weeks
include DeviseTokenAuth::Concerns::User
class Application < Rails::Application
config.middleware.insert_before 0, "Rack::Cors" do
  allow do
    origins "*"
    resource "*",
      headers: :any,
      expose: ['access-token', 'expiry', 'token-type', 'uid', 'client'],
      methods: [:get, :put, :post, :delete, :options]
  end
end
module Api
  class MobileController < ApplicationController
    include DeviseTokenAuth::Concerns::SetUserByToken
    respond_to :json
    before_filter :authenticate_user!

    def facility_contacts
      @facility = current_user.facility
    end
  end
end
class User::SessionsController < Devise::SessionsController
  include DeviseTokenAuth::Concerns::SetUserByToken

  respond_to :json, :html

  def create
    sign_out(:user) if current_user
    self.resource = warden.authenticate!(auth_options)
    set_flash_message(:notice, :signed_in) if is_flashing_format?
    sign_in(resource_name, resource)
    yield resource if block_given?
    respond_with resource, location: after_sign_in_path_for(resource)
  end
end
.factory('UserSession', function($resource) {
  return $resource("http://localhost:3000/users/sign_in.json")
})

.controller('LoginCtrl', function($scope, $location, UserSession, $ionicPopup, $rootScope) {
  $scope.data = {}
  $scope.login = function() {
  var user_session = new UserSession({ user: $scope.data })
  user_session.$save(
    function(data) {
      window.localStorage['userId'] = data.id
      window.localStorage['userName'] = data.name
      $location.path('/tab/daily_updates')
    },
    function(err) {
      var error = err['data']['error'] || err.data.join('.')
      var confirmPopup = $ionicPopup.alert({
        title: 'An error occured',
        template: error
      })
    }
  )
}
})