Rails api не возвращает токен доступа и клиента на внешний URL через авторизацию devise token - PullRequest
0 голосов
/ 15 ноября 2018

У меня проблема с 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

У всех естькакие-нибудь мысли о том, как заставить это работать?

1 Ответ

0 голосов
/ 09 февраля 2019

Вы добавили следующее в свой контроллер?

include DeviseTokenAuth::Concerns::SetUserByToken 
...