ng-token-auth无访问控制

时间:2015-07-20 14:39:00

标签: ruby-on-rails angularjs ionic access-token

我正在使用ng-token-auth和带有devise-token-auth的rails API构建一个Ionic App。

我刚刚在文档

之后实现了注册部分

https://github.com/lynndylanhurley/ng-token-auth#authsubmitregistration

用户注册并确认邮件后,会出现带有身份验证标头的Cookie,访问令牌'令牌类型'客户端' ,'到期'和' uid'已创建。

问题是在此之后我得到了错误

printf("\nLast line!");

我遵循了devise-token-auth的文档并使用了rack-cors gem。

你能帮助我解决这个问题吗?

谢谢:)

修改

这是rack-cors的配置

 XMLHttpRequest cannot load http://127.0.0.1:8000/api/auth/validate_token. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8100' is therefore not allowed access. The response had HTTP status code 500.

这是路线的配置

##config/application.rb
...
config.middleware.use Rack::Cors do
  allow do
    origins '*'
    resource '*',
    :headers => :any,
    :expose  => ['access-token', 'expiry', 'token-type', 'uid', 'client'],
    :methods => [:get, :post, :options, :delete, :put, :patch]
  end
end

这些是错误的细节 enter image description here

这是用户注册的信息

##config/routes.rb
Rails.application.routes.draw do
  namespace :api do
    mount_devise_token_auth_for 'Usuario', at: '/auth'
  end

  root 'api/supermercados#index'
end

2 个答案:

答案 0 :(得分:0)

如你所说,错误是“请求资源上没有'Access-Control-Allow-Origin'标题。”

在许多情况下,这种错误来自错误定义,错误陈述或缺少以下代码......

header("Access-Control-Allow-Origin: *"); 
header('Access-Control-Allow-Methods: GET, POST');

请务必在ruby中修改上述代码,因为这是PHP代码。

如果这有帮助,请告诉我。

答案 1 :(得分:0)

感谢您的帮助,我可以解决问题,它与路由有关,我只是在api命名空间之外移动了devise-token-auth路由并且它有效。

mount_devise_token_auth_for 'Usuario', at: 'api/auth'

我认为这与此https://github.com/lynndylanhurley/devise_token_auth/issues/101

有关