我正在使用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
这些是错误的细节
这是用户注册的信息
##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
答案 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
有关