首页 > 解决方案 > Rails api 未通过设计令牌身份验证将访问令牌和客户端返回到外部 url

问题描述

我在将devise_token_auth客户端和访问令牌返回到前端时遇到问题。它在我的测试环境中运行良好,我得到了预期的结果。但在我的开发环境中,我使用的是外部 url。这是我创建会话时得到的响应:

 Object {
   "config": Object {
     "adapter": [Function xhrAdapter],
     "baseURL": "http://93ae6a5f.ngrok.io/api/v1",
     "data": "{\"email\":\"test@gmail.com\",\"password\":\"password\"}",
     "headers": Object {
       "Accept": "application/json",
       "Content-Type": "application/json",
     },
     "maxContentLength": -1,
     "method": "post",
     "timeout": 0,
     "transformRequest": Object {
       "0": [Function transformRequest],
     },
     "transformResponse": Object {
       "0": [Function transformResponse],
     },
     "url": "http://93ae6a5f.ngrok.io/api/v1/auth/sign_in",
     "validateStatus": [Function validateStatus],
     "xsrfCookieName": "XSRF-TOKEN",
     "xsrfHeaderName": "X-XSRF-TOKEN",
   },
   "data": Object {
     "data": Object {
       "allow_password_change": false,
       "email": "test@gmail.com",
       "id": 1,
       "image": null,
       "name": null,
       "nickname": null,
       "provider": "email",
       "uid": "test@gmail.com",
       "username": null,
     },
   },
   "duration": 731,
   "headers": Object {
     "cache-control": "public, max-age=0",
     "content-type": "application/json; charset=utf-8",
     "etag": "W/\"0fa41fc630ddb8ffc9b9f9f9b90849b5\"",
     "transfer-encoding": "chunked",
     "vary": "Origin",
     "x-request-id": "320d3bd6-7e94-48b4-8e14-fe434d593b6a",
     "x-runtime": "0.303548",
   },
   "ok": true,
   "originalError": null,
   "problem": null,
   "status": 200,
 }

我浏览了devise_token_auth文档并已将其添加到我的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]
  end
end

有人对如何使它工作有任何想法吗?

标签: ruby-on-railsdeviseruby-on-rails-5devise-token-auth

解决方案


您是否将以下内容添加到您的控制器?

include DeviseTokenAuth::Concerns::SetUserByToken 

推荐阅读