OAuth 2.0 으로 콩짜개 API 접근 하기
8432 단어 OAuth2.0
OAuth 2.0 으로 콩짜개 API 접근 하기
두 쪽 은 OAuth 2.0 프로 토 콜 의 권한 부여 접근 을 지원 합 니 다.OAuth 2.0 프로 토 콜 규범 에 대해 서 는 참고 하 시기 바 랍 니 다여기,이곳.
OAuth 2.0 을 사용 하 는 절 차 는 다음 과 같이 요약 할 수 있 습 니 다.
flow 와 native-applicationflow
이 두 가지 권한 수여 절 차 는 기본적으로 같 으 므 로 두 단 계 를 통 해 access 를 얻어 야 합 니 다.token。
인증 획득code
브 라 우 저 에서 아래 주 소 를 방문 하여 사용자 의 권한 을 부여 하고 authorizationcode
https://www.douban.com/service/auth2/auth
인자:
매개 변수 이름
매개 변수 설명
client_id
필수 매개 변수,유일한 표지,APIKey 에 대응
redirect_uri
필수 매개 변 수 는 사용자 권한 수여 가 완 료 된 후 주 소 를 되 돌려 줍 니 다.이 주 소 를 통 해 사용자 의 권한 수여 결 과 를 받 아야 합 니 다.이 주 소 는 등록 할 때 작성 한 리 셋 주소 와 일치 해 야 합 니 다.
response_type
필수 인자 입 니 다.이 값 은 code 나 token 일 수 있 습 니 다.이 프로 세 스에 서 이 값 은 code 입 니 다.
scope
선택 가능 한 매개 변수,신청 권한 의 범 위 를 채 우지 않 으 면 결 성 된 scope 를 사용 합 니 다.여러 scope 를 신청 하면 쉼표 로 구분 합 니 다.
state
요청 과 리 셋 상 태 를 유지 하기 위 한 추가 문자열 을 선택 할 수 있 습 니 다.리 셋 을 완료 할 때 이 매개 변 수 를 추가 합 니 다.이 문자열 에 따라 컨 텍스트 관 계 를 판단 할 수 있 습 니 다.
메모:이 요청 은 HTTP GET 방식 이 어야 합 니 다.
예 를 들 면:
https://www.douban.com/service/auth2/auth?
client_id=0b5405e19c58e4cc21fc11a4d50aae64&
redirect_uri=https://www.example.com/back&
response_type=code&
scope=shuo_basic_r,shuo_basic_w,douban_basic_common
결과 되 돌리 기:
https://www.example.com/back?error=access_denied
https://www.example.com/back?code=9b73a4248
획득 accesstoken
https://www.douban.com/service/auth2/token
매개 변수 이름
매개 변수 설명
client_id
필수 매개 변수,유일한 표지,APIKey 에 대응
client_secret
필수 매개 변수,응용 유일한 표지,콩잎 시 크 릿 에 대응
redirect_uri
필수 매개 변 수 는 사용자 권한 수여 가 완 료 된 후 주 소 를 되 돌려 줍 니 다.이 주 소 를 통 해 사용자 의 권한 수여 결 과 를 받 아야 합 니 다.이 주 소 는 등록 할 때 입력 한 리 셋 주소 와 일치 해 야 합 니 다.
grant_type
필수 매개 변수,이 값 은 authorizationcode 혹은 refreshtoken 。이 프로 세 스에 서 이 값 은 authorizationcode
code
필수 매개 변수,이전 단계 에서 획득 한 authorizationcode
메모:이 요청 은 HTTP POST 방식 이 어야 합 니 다.
예 를 들 면:
https://www.douban.com/service/auth2/token?
client_id=0b5405e19c58e4cc21fc11a4d50aae64&
client_secret=edfc4e395ef93375&
redirect_uri=https://www.example.com/back&
grant_type=authorization_code&
code=9b73a4248
결과 되 돌리 기:
{
"access_token":"a14afef0f66fcffce3e0fcd2e34f6ff4",
"expires_in":3920,
"refresh_token":"5d633d136b6d56a41829b73a424803ec",
"douban_user_id":"1221"
}
access 사용token
curl "https://api.douban.com/v2/user/~me"
-H "Authorization: Bearer a14afef0f66fcffce3e0fcd2e34f6ff4"
access_token 유효기간 및 refreshtoken
OAuth 2.0 에서 accesstoken 은 더 이상 장기 적 으로 유효 하지 않 습 니 다.권한 부여 중 access 획득token 시 유효기간,즉 반환 값 의 expires 를 되 돌려 줍 니 다.인자
accesstoken 사용 중 서버 가 106 오 류 를 되 돌려 주면:"accesstoken_has_expired",이때 access 설명token 은 만 료 되 었 습 니 다.다시 사용자 에 게 권한 을 부여 하 는 것 을 제외 하고 accesstoken 외 에 refreshtoken 방식 으로 새로운 accesstoken 과 refreshtoken。
refreshtoken 교환 accesstoken 의 처리 과정 은 다음 과 같 습 니 다.
https://www.douban.com/service/auth2/token
매개 변수 이름
매개 변수 설명
client_id
필수 매개 변수,유일한 표지,APIKey 에 대응
client_secret
필수 매개 변수,응용 유일한 표지,콩잎 시 크 릿 에 대응
redirect_uri
필수 매개 변 수 는 사용자 권한 수여 가 완 료 된 후 주 소 를 되 돌려 줍 니 다.이 주 소 를 통 해 사용자 의 권한 수여 결 과 를 받 아야 합 니 다.이 주 소 는 등록 할 때 입력 한 리 셋 주소 와 일치 해 야 합 니 다.
grant_type
필수 매개 변수,이 값 은 authorizationcode 혹은 refreshtoken。이 프로 세 스에 서 이 값 은 refreshtoken
refresh_token
필수 매개 변수,영패 리 셋
메모:이 요청 은 HTTP POST 방식 이 어야 합 니 다.refreshtoken 은 accesstoken 이 만 료 되 었 을 때 만 사용 할 수 있 고 한 번 만 사용 할 수 있 습 니 다.바 꾼 accesstoken 다시 만 료 시 새로운 refresh 사용token 에서 accesstoken
예 를 들 면:
https://www.douban.com/service/auth2/token?
client_id=0b5405e19c58e4cc21fc11a4d50aae64&
client_secret=edfc4e395ef93375&
redirect_uri=https://www.example.com/back&
grant_type=refresh_token&
refresh_token=5d633d136b6d56a41829b73a424803ec
결과 되 돌리 기:
{
"access_token":"0e63c03dfb66c4172b2b40b9f2344c45",
"expires_in":3920,
"refresh_token":"84406d40cc58e0ae8cc147c2650aa20a",
"douban_user_id":"1000"
}
등급
access_token 유효기간
refresh_token 유효기간
설명 하 다.
L1
7 일
14 일
L2
30 일
60 일
L3
90 일
180 일
권한 부여 가 필요 한 Api 접근 속도 제어
사용자,응용,서버 IP,scope 등 차원 에서 인터페이스의 접근 속 도 를 제한 합 니 다.
서버 IP 대상:
등급
제한 하 다.
L1
5000 회/시간
L2
10000 회/시간
L3
20000 회/시간
단일 사용자 에 대한 모든 scope 적용:
등급
제한 하 다.
L1
500 회/시간
L2
1000 회/시간
L3
2000 회/시간
결 과 를 되 돌려 주 는 header 에 현재 접근 제한 정보 가 있 습 니 다:
헤더 이름
속뜻
X-Ratelimit-Limit
단일 사용자 시간 당 횟수
X-RateLimit-Remaining
단일 사용자 시간 당 남 은 횟수
X-Ratelimit-Limit2
단일 ip 시간 당 횟수
X-RateLimit-Remaining2
시간 당 남 은 횟수
오류 코드
API 사용 중 오류 가 발생 하면 결 과 를 다음 과 같이 되 돌려 줍 니 다.
{
"code":113,
"msg":"required_parameter_is_missing: client_id",
"request":"GET /shuo/statuses/232323"
}
오류 코드
잘못된 설명
100
invalid_request_scheme 잘못된 요청 프로 토 콜
101
invalid_request_method 잘못된 요청 방법
102
access_token_is_찾 을 수 없 음 accesstoken
103
invalid_access_token access_token 이 존재 하지 않 거나 삭제 되 었 거나 사용자 가 암 호 를 수정 하 였 습 니 다.
104
invalid_apikey apikey 가 존재 하지 않 거나 삭제 되 었 습 니 다.
105
apikey_is_blocked apikey 가 비활성화 되 었 습 니 다.
106
access_token_has_expired access_token 기한 이 지 났 습 니 다.
107
invalid_request_uri 요청 주소 미등 록
108
invalid_credencial 1 사용자 가 이 데이터 에 접근 할 수 있 는 권한 이 없습니다.
109
invalid_credencial 2 apikey 이 권한 을 신청 하지 않 았 습 니 다
110
not_trial_user 미등 록 테스트 사용자
111
rate_limit_exceeded 1 사용자 접근 속도 제한
112
rate_limit_exceeded 2 IP 접근 속도 제한
113
required_parameter_is_누락 매개 변수 부족
114
unsupported_grant_type 잘못된 granttype
115
unsupported_response_type 잘못된 responsetype
116
client_secret_mismatch client_비밀 일치 하지 않 음
117
redirect_uri_mismatch redirect_uri 일치 하지 않 음
118
invalid_authorization_code authorization_code 가 존재 하지 않 거나 만 료 되 었 습 니 다.
119
invalid_refresh_token refresh_token 이 존재 하지 않 거나 만 료 되 었 습 니 다.
120
username_password_mismatch 사용자 이름 비밀번호 가 일치 하지 않 습 니 다.
121
invalid_user 사용자 가 존재 하지 않 거나 삭제 되 었 습 니 다.
122
user_has_blocked 사용자 가 차단 되 었 습 니 다
123
access_token_has_expired_since_password_changed 사용자 가 비밀 번 호 를 수정 하여 access만 료
124
access_token_has_not_expired access_token 미 만
125
invalid_request_scope 가 접근 한 scope 는 합 법 적 이지 않 습 니 다.개발 자 는 너무 관심 을 가지 지 않 아 도 됩 니 다.일반적으로 이 오류 가 발생 하지 않 습 니 다.
999
알 수 없 는 오류
HTTP 상태 코드
설명 하 다.
200
api 요청 정상 표시
400
api 요청 오류 표시,구체 적 인 원인 은 위 에 열거 한 오류 코드 참조
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
IoT 시계열 데이터 처리 정보 - Azure Time Series Insights의 집계 처리Azure Time Series Insights는 시계열 데이터에 대한 임시 저장소 역할을 합니다. IoT에서는 데이터가 시계열인 경우가 많으며 센서의 데이터인지 여부에 따라 시각화나 분석 전에 데이터를 처리해야 합...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.