Qiita API의 OAuth 인증은 일근 줄이 아닙니다.
계기
Qiita API로 놀아 보려고 생각했고 OAuth 라이브러리를 사용하여 빨리 인증을 시도했지만 작동하지 않았습니다.
나름대로 조사한 바, 아무래도 Qiita API의 인증은 OAuth의 사양과 조금 다른 생각이 들었으므로 메모도 겸해 투고합니다.
의견・지적 있으면 코멘트해 주시면 도움이 됩니다!
이 문서의 내용은 2019년 2월 27일 현재 내용입니다. 향후 Qiita API의 수정·변경에 의해 내용에 차이가 생기는 경우가 있습니다
무엇이 곤란한가?
사양과 다르면 사양에 준거하여 만들어진 인증 라이브러리를 사용하여 인증할 수 없습니다.
그러므로 Qiita API의 인증용으로 조금 라이브러리를 재작성하거나 최악의 자전으로 구현할 필요가 있습니다.
이 기사의 내용이 라이브러리를 다시 쓰거나 설정할 때의 힌트가 되면 다행입니다.
1. 액세스 토큰 발급 요청의 Content-Type이 다릅니다.
사양에서
Content-Type
는 application/x-www-form-urlencoded
Qiita API에서는 application/json
해설
Qiita API의 OAuth 인증은 액세스 토큰 발급 요청의
Content-Type
에 application/json
를 지정하도록 지시합니다.참고: htps : // 코 m / 아피 / v2 / 도 CS
그러나 OAuth 2.0 사양에서는
クライアントはトークンエンドポイントに対して, 次のようなパラメーターを付与してリクエストを送信する.
(中略)application/x-www-form-urlencoded フォーマットで含める.
(中略)
Content-Type: application/x-www-form-urlencoded
참고: ㅡㅡㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜ 기주 b. 이오/rfc6749. 그럼. html#과 켄-q
와 같이
Content-Type
에는 application/x-www-form-urlencoded
를 지정하도록(듯이) 사양으로 책정되고 있습니다.인증 라이브러리를 사용하는 경우 해당 라이브러리가 OAuth 사양을 준수하면
application/x-www-form-urlencoded
요청을 하기 때문에 Qiita API의 OAuth 인증에 실패합니다.(
invalid_content_type
라는 오류 응답이 반환됩니다)Qiita 하지만 이
Content-Type
문제로 넘어지고 있는 분이 계셨습니다.2. 액세스 토큰 응답의 JSON 모양이 다릅니다.
사양에서는 JSON 내의 토큰의 키는
access_token
Qiita API에서는 token
해설
Qiita API 문서에 따르면 액세스 토큰 요청에 성공하면 다음과 같은 응답이 반환됩니다.
{
"client_id": "a91f0396a0968ff593eafdd194e3d17d32c41b1da7b25e873b42e9058058cd9d",
"scopes": [
"read_qiita"
],
"token": "ea5d0a593b2655e9568f144fb1826342292f5c6b7d406fda00577b8d1530d8a5"
}
참고: htps : // 코 m / 아피 / v2 / 도 CS
사양에서는 다음과 같이 정해져 있습니다.
アクセストークンリクエストが正当かつ認可された場合,(中略)
成功レスポンス例を以下に示す.
{
"access_token":"2YotnFZFEjr1zCsicMWpAA",
"token_type":"example",
"expires_in":3600,
"refresh_token":"tGzv3JOkF0XG5Qx2TlKWIA",
"example_parameter":"example_value"
}
참고: ㅡㅡㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜ 기주 b. 이오/rfc6749. 그럼. HTML#안초r25
Qiita API에서는 중요한 토큰 키가
access_token
가 아닌 token
입니다.Content-Type
때와 마찬가지로 OAuth 사양을 준수하는 라이브러리는 access_token
를 가정하므로 "토큰을 얻을 수 없음"과 같은 오류가 발생할 수 있습니다.요약
Reference
이 문제에 관하여(Qiita API의 OAuth 인증은 일근 줄이 아닙니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/takumi-n/items/795e7687db988dc9e2e5텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)