devise-token-auth로 access-token을 response로 얻을 수 없다
2667 단어 CORS액세스 토큰devise_token_authRails
이번에 발생한 문제
페이지내에서
request.headers
에 액세스해도 인증에 필요한 access-token
이나 client
가 보이지 않는다. (api를 postman으로 두드리면 볼 수 있는데...)아래는 postman에 표시된 응답 헤더
원인
API와 클라이언트가 다른 도메인에 있는 경우 RailsAPI에
cross origin request
를 허용해야 하고 expose
에 대한 설명이 누락되었습니다.참고로 한 사이트
devise-token-auth 공식 문서
내용은 동일하지만 이것을 번역하는 사이트
devise-token-auth 공식 문서 (일본어)
수정한 곳
파일의 위치는 프로젝트에 따라 다르지만
CORS
에 대해 작성된 config 파일을 다시 작성했습니다. 이번에는 다음 파일을 수정한다./back/config/initializers/cors.rb
Rails.application.config.middleware.insert_before 0, Rack::Cors do
allow do
origins 'localhost:8080'
resource '*',
headers: :any,
expose: ['access-token', 'uid', 'client'], #この行を新たに追加
methods: [:get, :post, :put, :patch, :delete, :options, :head]
end
end
마지막으로
이 문제를 해결함에 있어서, 다양한 기사를 오갔지만, 최종적으로는 공식 문서로 가볍게 해결해 버렸다.
Reference
이 문제에 관하여(devise-token-auth로 access-token을 response로 얻을 수 없다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/minatatsu/items/2e29471e876f47b94d00텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)