2014-07-23 3 views
1

Her을 사용하여 API에서 정보를 검색 할 수있게되었습니다. 헤더를 통해 전달되는 인증 토큰이 필요합니다. 어떻게하면 좋을까요? 이 문서는 어디서나 해결책을 제시하지는 않지만 대단히 필요한 유틸리티 인 것 같습니다.헤더의 요청에 헤더를 어떻게 추가하나요?

+1

을 설정 한 것처럼 보이는을 'env'를 수락하고 env [: request_headers] [ 'Header-Name']에 헤더를 할당하는 미들웨어를 시작한다. – sethetter

답변

1

@ sethetter의 의견은 기본적으로 그것을 다루었지만, 최근에 내가 비슷한 것을했기 때문에 누군가가 미래에 유용하다고 생각할 수있는 코드를 포함시킬 것이라고 생각했습니다. 따라서 이렇게하려면 call 메서드에서 원하는 헤더를 추가하는 요청 미들웨어를 만들어야합니다. 나는 비슷한 일을했다, 그 결과는 다음과 같이 보았다 :

class Authentication < Faraday::Middleware 
    def call(env) 
    env[:request_headers]['auth-token'] = generate_token(env) 
    @app.call(env) 
    end 

    def generate_token(env) 
    # generate the token based on the request, if needed 
    end 
end 

그리고 당신은 API 스택 구성 할 때 다음 : 문서보고에서

require 'authentication' #if you've defined it in a different file 
@api = Her::API.new 
@api.setup(:url => my_api_base_url) do |c| 
    c.use Authentication 
    # other middlewares as usual 
end 
관련 문제