플랫폼 기술-사용자 인증 소개


로그인 인증

애플리케이션이 Taobao 개방형 플랫폼에 연결할 때 사용자 개인 정보 보호 데이터(예: 제품, 주문 등)를 확보해야 하는 경우, 사용자 데이터의 보안 및 개인 정보 보호를 위해 애플리케이션은 사용자의 승인을 얻어야 합니다. 즉, 사용자 데이터에 액세스하기 위한 액세스 토큰(원본 SessionKey)을 얻어야 합니다. 이 경우 애플리케이션은 Taobao 계정을 사용하여 "로그인 인증" 프로세스를 통해 사용자를 안내해야 합니다. 이 프로세스는 국제적으로 통용되는 OAuth2.0 표준 프로토콜을 사용자 인증 및 권한 부여 프로토콜로 사용하며 웹사이트, 모바일 클라이언트 및 데스크톱 클라이언트를 지원합니다.
현재 Taobao OAuth2.0 서비스는 액세스 토큰(인증 토큰)을 얻는 두 가지 방법, 즉 서버 측 흐름과 클라이언트 측 흐름을 지원합니다. 자세한 내용은 다음 지침을 참조하세요.

참고: Taobao ID(Taobao 계정) 제품은 Taobao 구매자에게 Taobao 멤버십 서비스를 제공하기 위해 Alibaba 그룹의 비공식 채널에서 사용될 수 없습니다. (예: 주문 조회, 물류 추적 등) 불법 사용이 발견되면 개방형 플랫폼은 즉시 앱키의 타오바오 ID 사용 권한을 취소합니다. 注:Taobao ID(淘帐号)产品不得用于阿里巴巴集团非官方渠道为淘宝买家提供淘宝会员类服务(如:订单查询、物流追踪 等),一旦发现违规使用,开放平台将立即收回该appkey的Taobao ID使用权限

 

特别注意

此文档描述的授权页面仅适用于PC端,如果您的页面是在手机淘宝/天猫客户端中被访问,请参考这里。如果您的页面是在H5手机浏览器中被访问,请参考这里。

 

一、Server-side flow

此流程要求ISV应用有Web Server应用,能够保存应用本身的密钥以及状态,可以通过https直接访问淘宝的授权服务器。

1、请求入口地址

1)获取授权码(code)
 正式环境:https://oauth.taobao.com/authorize
 沙箱环境:https://oauth.tbsandbox.com/authorize
2)获取访问令牌(access_token)
 正式环境:https://oauth.taobao.com/token
 沙箱环境:https://oauth.tbsandbox.com/token

특별 주의이 문서에 설명된 인증 페이지는 PC 측에만 적용됩니다. 귀하의 페이지 모바일 Taobao/Tmall 클라이언트에서 액세스할 수 있습니다. 여기를 참조하세요. H5 모바일 브라우저에서 페이지에 접속하는 경우 여기를 참고하세요.


1. 서버 측 흐름


이 프로세스를 수행하려면 ISV 애플리케이션에 웹 서버 애플리케이션이 있어야 하며, 이를 통해 서버 측의 키와 상태를 저장할 수 있습니다. https를 통해 Taobao의 인증 서버에 직접 액세스할 수 있습니다. TB1CBIbHpXXXXaIXpXXSutbFXXX.jpg

#🎜🎜#1. 요청 항목 주소 #🎜🎜##🎜🎜##🎜🎜#1) 인증 코드(코드) 획득 #🎜🎜# 형식 환경: https://oauth.taobao.com/authorize#🎜🎜# 샌드박스 환경: https://oauth.tbsandbox.com / 승인#🎜🎜#2) 액세스 토큰 획득(access_token)#🎜🎜# 공식 환경: https://oauth.taobao.com/token#🎜🎜# 샌드박스 환경: https://oauth.tbsandbox.com/token#🎜 🎜##🎜🎜##🎜🎜#2. 승인 단계#🎜🎜##🎜🎜##🎜🎜# 다음은 정식 환경에서 access_token을 얻는 예입니다. 입구 주소 등 관련 데이터는 샌드박스의 해당 입구 주소로 대체되며, 작업 프로세스는 형식적인 환경과 일치합니다. #🎜🎜# 실제로 인증 작업을 수행할 때, 테스트 데이터인 client_id, client_secret, Redirect_uri는 본인이 생성한 실제 애플리케이션 데이터에 맞게 교체되어야 하며, 직접 테스트를 위해 예시에서 제시한 값을 사용할 수는 없습니다. 실제 테스트 효과에 영향을 미치지 않도록. 아래 그림은 서버 측 흐름 승인 방법 흐름도를 보여줍니다. 다음은 흐름도를 기반으로 단계별로 설명합니다. #🎜🎜##🎜🎜##🎜🎜#

1) 스플라이싱 인증 url
스플라이싱 사용자 인증을 위해서는 해당 URL에 대한 접근이 필요하며, 예시와 매개변수 설명은 다음과 같습니다:
https:/ /oauth.taobao.com/authorize?response_type=code&client_id=23075594&redirect_uri=http://www.oauth.net/2/&state=1212&view=web

#🎜 🎜#3) 코드 받기QQ截图20170213145452.png2) 사용자가 인증을 위해 로그인하도록 안내 사용자가 브라우저를 통해 위 인증 URL에 액세스하도록 안내하고, 다음 로그인 페이지 팝업됩니다. 사용자는 계좌번호와 비밀번호를 입력하고 "로그인" 버튼을 클릭하여 인증 페이지로 들어갑니다.

TB1pwkRHpXXXXXLXpXXSutbFXXX.jpg

위 페이지에서 사용자가 "Authorize" 버튼을 클릭하면 TOP은 콜백 주소로 인증 코드를 반환하고 애플리케이션은 인증 코드를 얻어 사용할 수 있습니다. code to exchange access_token;

사용자가 인증 대신 "취소" 버튼을 클릭하면 다음 결과가 반환됩니다. 여기서 error는 오류 코드이고 error_description은 오류 설명입니다. 아래 그림과 같이:
TB1l1AfHpXXXXXDXXXXSutbFXXX.jpg

설명 : 은 서비스 마켓(
fuwu.taobao.com#🎜)을 게시할 수 있습니다. 🎜# ) 애플리케이션, 애플리케이션이 온라인 상태가 된 후 사용자가 애플리케이션을 구매하고 "나의 서비스--지금 사용"(아래 그림)을 통해 애플리케이션에 액세스하면 시스템이 자동으로 인증 페이지로 이동합니다(따라서 접합이 필요하지 않습니다). 이런 방식으로 애플리케이션에 액세스하려면) url) 코드를 받는 데만 주의하세요. 동시에 코드를 반환할 때 다음과 유사하게 상태를 통과한 주문 서비스와 관련된 정보도 반환합니다. state=versionNo:1;itemCode:xxxxx(versionNo는 애플리케이션 버전 번호, itemCode 애플리케이션 충전 코드입니다) # 🎜🎜#

4) access_token 교환

linux 컬 명령을 사용하여 획득 access_token(인증 토큰)은 다음과 같습니다. 애플리케이션의 경우 여기에서 문서 및 샘플 코드
를 참조할 수 있습니다. **示例**curl -i -d "code=OxlukWofLrB1Db1M6aJGF8x2332458&grant_type=authorization_code&client_id=23075594&

cl ient _secret=69a1469a1469a1469a14a9bf269a14&redirect_uri=http://www.oauth. net /2/ "https://oauth.taobao.com/token



access_token 반환 값 교환 예시

QQ截图20170213145648.png

2, 클라이언트 측 흐름

클라이언트 측 애플리케이션 인증 방법은 독립적인 웹 서버가 없지만 브라우저나 JS 스크립트를 사용하여 인증 서버에 액세스할 수 있는 ISV 애플리케이션에 적합합니다.

1. 요청 항목 주소

공식 환경: https://oauth.taobao.com/authorize
샌드박스 환경 : https://oauth.tbsandbox.com/authorize

2. 인증 단계

access_token을 얻기 위한 공식 환경을 예로 들면, 샌드박스 환경이라면 샌드박스 데이터를 활용해주세요.
동시에 인증 프로세스 중에 client_id와 같은 매개변수를 생성한 애플리케이션의 실제 데이터에 따라 교체해야 합니다. 그렇지 않으면 인증을 완료할 수 없습니다.
아래 그림은 클라이언트 측 흐름 승인 방법 흐름도입니다. 다음은 흐름도에 따른 단계별 세부 설명입니다TB1gIY_HpXXXXagXVXXSutbFXXX.jpg

1) 스플라이싱 인증 url#🎜 ###### 🎜🎜#https: //oAuth.taobao.com/authorize? Response_type = Token & Client_ID = 23075594 & State = 1212 & View = Web#🎜🎜 ## 🎜🎜 ## 🎜🎜 ## 🎜🎜 ## 🎜🎜 ## 🎜🎜 ## 🎜🎜 🎜🎜 ### #

2) 사용자 로그인 권한 안내 #🎜 🎜#이 단계는 서버 측 흐름 인증 방법과 동일하며 사용자가 인증을 위한 인증 URL에 접근하도록 다음과 같이 안내합니다.

QQ截图20170213145724.png


3) Get access_token위 페이지에서 Authorization을 클릭한 후 TOP가 access_token을 직접 전송합니다. Taobao의 기본 페이지로 돌아갑니다(코드를 먼저 반환한 다음 access_token을 변경하는 서버 측 흐름과 다름). 이때 JS 스크립트(
if(window.location.hash!="")를 사용할 수 있습니다. {alert(window.location.hash)}

)는 액세스 토큰을 얻기 위해 # 콜백 페이지 뒤의 필드를 가져올 수 있습니다.

LB1c5YZKXXXXXamXFXXXXXXXXXX.jpg

반환 매개변수 예:

https://oauth. taobao.com/oauth2?view=web#access_token=6101227f5e8c230696ac93a77b3de7daacb154c6ad98106263664221&token_type=Bearer&expires_in=86400&refresh_token=6100627e3f9202c0960a6ab5 bfd704939c91635892c70dd263664221&re_expires_in=86400&r1_expires_in=86400&r2_expires_in=86400&taobao_user_id=263664221&taobao_user_nick=%E5%95%86%E5%AE%B6%E6% B 5%8B%E8% AF %95%E5%B8%90%E5%8F%B717&w1_expires_in=86400&w2_expires_in=86400&state=1212&top_sign=3429C556FCD3F3FC52547DD31021592F

LB18bZlKXXXXXXdXXXXXXXXXXXX (1).jpg#🎜 🎜#

참고:
여기에 반환되는 매개변수는 top_sign을 제외하고 서버측 흐름 인증 반환 매개변수와 동일합니다. 자세한 내용은 서버측 흐름의 지침을 참조하세요.
top_sign은 시스템에서 생성된 서명 매개변수입니다. 클라이언트 측 흐름 방법을 사용하는 승인에는 이 매개변수의 일관성 확인이 필요합니다.


4) 승인 서명을 확인합니다.

즉, 반환 매개변수가 top_sign과 일치하는지 확인합니다. 위와 같이 반환된 매개변수에 top_sign을 제외한 파운드 기호 뒤의 모든 키와 값을 매개변수의 알파벳순으로 배열하고, 이를 key1+value+key2+value.... 형식으로 이어붙인 후 추가합니다. 그 전후에 AppSecret을 입력하고(AppSecret=69a1469a1469a1469a14a9bf269a14 가정) utf-8 인코딩으로 변환한 다음 md5 암호화를 수행하고 마지막으로 모두 대문자로 변환합니다.
md5(utf-8:AppSecret+k1+v1+k2+v2+...+kn+vn + AppSecret).


다음 반환 매개변수의 경우 # 기호 뒤의 매개변수를 가져와서 연결하고 시작과 끝에 AppSecret을 추가하면 다음 결과를 얻을 수 있습니다. 4c6ad981 06263664221token_typeBearer
expires_in86400refresh_token6100627e3f9202c0 960a6ab5bfd704939c91635892c70dd263664221re_expires_in86400r1 _expires_in8640 0
r2expires_in86400taobao_user_id263664221taobao_user_nick%E5% 95%86%E5%AE%B6% E6%B5%8B%E8%AF%95%E5%B8%90%E5%8F%B717w1_expires_in86400&w2_expires_in86400&state121269a1469a1469a1469a14a9bf269a14
md5 암호화(API 호출 샘플 코드 참조) 및 변환 대문자로 바꾸면 top_sign과 일치하는 3429C556FCD3F3FC52547DD31021592F를 얻습니다.

로그아웃

로그아웃 프로세스는 현재 웹 접속만 지원합니다. 해당 기능은 사용자 인증을 취소하는 것이 아니라 taobao.com의 쿠키를 삭제하는 것입니다. WAP에 대한 액세스가 작동하지 않습니다.

1. 신청 주소

1. 공식 환경:

https://oauth.taobao.com/logoff

2. 샌드박스 환경: https://oauth.tbsandbox.com/logoff
2. 종료 단계

종료 URL(예:
https://oauth.taobao.com/logoff?client_id=12304977&view=web

)을 연결하고 종료 후 타오바오 홈페이지로 이동합니다.

Refresh Authorization

인증을 통해 얻은 Refresh_token을 사용하여 액세스 토큰의 r2 기간을 새로 고칠 수 있습니다.

r1이나 w1은 보통 구독기간과 동일하고 일반적으로 새로고침이 필요하지 않기 때문에 w2는 재인증을 통해 연장해야 하므로 일반적으로 Refresh_token은 r2의 유효기간을 연장하는 용도로만 사용됩니다.

작업 방법은 액세스 토큰을 얻는 것과 유사하며 요청 매개변수만 다릅니다. 설명은 다음과 같습니다.



관련 지침QQ截图20170213145927.png

1.

승인된 access_token(expires_in)의 유효기간은 태그 유형(예: IT 도구, 판매자 백엔드 시스템 등) 및 상태(예: 공식 환경, 온라인 등)에 따라 다음과 같습니다.
참고: 실제 API가 호출되면 애플리케이션 인증 기간이 더 정확하게 제어됩니다. 자세한 내용은 (2. 보안 수준 설명)을 참조하세요. 또한 "타사 IT 도구"와 같은 애플리케이션이 게시됩니다. fuwu는 온라인으로 개발된 후 .taobao.com에서 사용을 위해 주문해야 하며 해당 승인 기간은 주문 기간과 동일합니다. 구매가 1개월인 경우 획득한 access_token은 1년 동안 유효합니다. 월.

QQ截图20170213145956.png

2. 보안 수준 설명

타오바오 오픈 플랫폼에 공개된 데이터의 보안을 보다 유연하게 통제하고 사용자 데이터가 유출되거나 악의적으로 변조될 위험을 줄이기 위해 보안 수준의 개념은 다음과 같습니다. 소개됩니다.
Taobao 개방형 플랫폼은 API(또는 API 필드)와 애플리케이션에 각각 r1, r2, w1, w2, 0,1,2,3의 네 가지 보안 수준을 표시합니다. 액세스 토큰(세션 키)이 발급되면 r1, r2, w1, w2에 해당하여 r1_expires_in, r2_expires_in, w1_expires_in, w2_expires_in 4개의 만료 시간이 추가됩니다. 이 네 가지 값은 다음과 같이 각 레벨에서 API(또는 필드)를 호출하는 이 액세스 토큰의 유효 기간을 나타내는 데 사용됩니다. (보안 레벨 제한이 적용되는 애플리케이션에는 타사 IT 도구, 서비스 제공업체 백엔드 시스템 및 스토어 모듈 백엔드. ;판매자가 사용하는 것과 같은 판매자 백엔드 시스템 및 새로운 비즈니스 애플리케이션은 당분간 영향을 받지 않습니다.)

.

{
  "w2_expires_in": 0,
  "taobao_user_id": "263685215",
  "taobao_user_nick": 5 %95%86%E5%AE%B6%E6%B5%8B%E8%AF%95%E5%B8%90%E5%8F%B752",
  "w1_expires_in": 1800,
"re_expires_in": 0,
  "r2_expires_in": 0,
  "expires_in": 86400,
  "token_type": "Bearer",
  "refresh_token": "6200e1909ca29b0 4685c49d67f5ZZ3675347c0c6d5abccd263685215",
  "access_token": "6200819d9366af1383023a19907ZZf9048e4c14fd56333b263685215",
  "r1_expires_in": 1800
}#🎜🎜 #
보안 수준API 수준공식 환경 테스트온라인 및 실행 중새로 고침 가능 여부새로 고침 시간
레벨 3R1 24시간동일 주문 시간대로 온라인 신청은 구독 기간과 일치하며 공식 환경 테스트는 24시간 동안 유효합니다
레벨 3R224시간구독 기간 동일온라인 신청은 구독 기간과 동일하며, 공식 환경 테스트는 24시간 동안 유효합니다
레벨 3W124시간주문 시간과 동일온라인 신청은 주문 시간에 맞춰 공식 환경 테스트는 24시간 동안 유효합니다
레벨 3 W224시간주문 시간 동일온라인 신청은 주문 시간과 동일합니다. 공식 환경 테스트는 24시간 동안 유효합니다
레벨 2R124시간주문 시간 동일온라인 신청은 구독 시간에 맞춰 진행되며, 공식 환경 테스트는 24시간 동안 유효합니다.
레벨 2R224시간72시간온라인 지원은 구독 시간과 일치하며, 공식 환경 테스트는 24시간 동안 유효합니다
레벨 2W1 24시간주문 시간 동일온라인 신청은 주문 시간과 일치하며 공식 환경 테스트는 24시간 동안 유효합니다
레벨 2W2 30분30분 아니요
레벨 1R124시간구독 시간 동일온라인 신청은 구독 시간과 일치하며 공식 환경 테스트는 24시간 동안 유효합니다
1급R224시간24시간No
1급W124시간주문시간과 동일 온라인 신청 및 주문시간 상시, 공식 환경 테스트는 24시간 동안 유효합니다
레벨 1W25분5분No
레벨 0R130분 30분 아니요
레벨 0R20분0분No
레벨 0W130분 30분아니요
레벨 0W20분0분No

예제 코드

1. access_token 예제 얻기

예제 코드는 모두 SDK 기반이므로 SDK 다운로드 및 사용 지침을 참조하세요.

1, JAVA 예제

import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import com.taobao.api.internal.util.WebUtils; //引用top sdk
 public class open_oauth {
    public static void main(String[] args) {
      String url="https://oauth.taobao.com/token";
      Map<String,String> props=new HashMap<String,String>();
      props.put("grant_type","authorization_code");
/*测试时,需把test参数换成自己应用对应的值*/
      props.put("code","test");
      props.put("client_id","test");
      props.put("client_secret","test");
      props.put("redirect_uri","http://www.test.com");
      props.put("view","web");
      String s="";
      try{s=WebUtils.doPost(url, props, 30000, 30000);
      System.out.println(s);
      }catch(IOException e){
          e.printStackTrace();}
    } }


2, PHP 예제

<?php
/*测试时,需把test参数换成自己应用对应的值*/

 $url = 'https://oauth.taobao.com/token';
 $postfields= array('grant_type'=>'authorization_code',
 'client_id'=>'test',
 'client_secret'=>'test',
 'code'=>'test',
 'redirect_uri'=>'http://www.test.com');
 $post_data = '';
 
 foreach($postfields as $key=>$value){
 $post_data .="$key=".urlencode($value)."&";}
 $ch = curl_init();
 curl_setopt($ch, CURLOPT_URL, $url);
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
 curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, 0);
 curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0);
 
 //指定post数据
 curl_setopt($ch, CURLOPT_POST, true);

 //添加变量
 curl_setopt($ch, CURLOPT_POSTFIELDS, substr($post_data,0,-1));
 $output = curl_exec($ch);
 $httpStatusCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
 echo $httpStatusCode;
 curl_close($ch);
 var_dump($output);
 
?>


3, .NET 예제

namespace Oauth2._0
{
    class Program 
    { 
    static void Main(string[] args)
        {
            WebUtils webUtils = new WebUtils(); 
            IDictionary<string, string> pout = new Dictionary<string, string>(); 
            pout.Add("grant_type", "authorization_code"); 
            pout.Add("client_id", "test"); 
            pout.Add("client_secret", "test"); 
            pout.Add("code", "test");
            pout.Add("redirect_uri", "http://www.test.com"); 
            string output = webUtils.DoPost("https://oauth.taobao.com/token", pout); 
            Console.Write(output); 
            Console.ReadLine();       
        }
    } 
}


2. Refresh_token 새로고침 예시다음은 SDK의 Java 예제를 기반으로 다른 언어에서도 유사한 토큰 획득 방법을 참조할 수 있으며 동시에 테스트할 때 테스트 매개변수를 애플리케이션에 해당하는 실제 값으로 대체해야 합니다.

  import java.io.IOException;
  import java.util.HashMap;
  import java.util.Map;
  import com.taobao.api.internal.util.WebUtils;
 
  public class test_refresh {
     
  public static void main(String[] args) {
    String url="https://oauth.taobao.com/token";
    Map<String,String> props=new HashMap<String,String>();
    props.put("grant_type","refresh_token");
    props.put("refresh_token","test");
    props.put("client_id","test");
    props.put("client_secret","test");
    String s="";
    try{s=WebUtils.doPost(url, props, 30000, 30000);
    System.out.println(s);
    }catch(IOException e){
        e.printStackTrace();
    }
    }

위는 responseJson을 객체로 변환하거나, 여기서 access_token 필드와 새 새로 고침 토큰을 직접 추출합니다.


refresh_token은 결과 콘텐츠 예제를 반환합니다.

FAQ

1. 토큰 획득 승인 시 appkey가 전달되었으나 client_id가 비어 있음 오류가 계속 보고되나요?
인증의 또 다른 주요 매개변수인 client_secret이 잘못되었습니다. 이 오류가 보고됩니다. 집중적으로 확인하시기 바랍니다

2. 먼저 샌드박스에서 인증 테스트를 수행해야 합니까?

그런 요구 사항은 없습니다. "먼저 샌드박스에서 인증을 테스트한 다음 공식 환경에서" 직접 테스트할 수도 있습니다.

3. 승인과 관련하여 일반적으로 사용되는 문서는 무엇입니까?

  • 다중 매장 관리: 보기
  • 빠른 인증 도구: 보기
  • 보안 수준 개선 방법: 보기
  • 보안 수준 세부 정보: 보기

4. 기타 인증 문제 및 오류 코드에 대한 참조: 보기

FAQ

  • 아직 이 문서에 대한 FAQ가 없습니다
{
"w2_expires_in": 0,
"taobao_user_id": "263685215",
"taobao_user_nick": "%E5%95%86%E5%AE%B6%E6%B5%8B%E8%AF%95%E5%B8%90%E5%8F%B752",
"w1_expires_in": 1800,
"re_expires_in": 0,
"r2_expires_in": 0,
"expires_in": 86400,
"token_type": "Bearer",
"refresh_token": "6200e1909ca29b04685c49d67f5ZZ3675347c0c6d5abccd263685215",
"access_token": "6200819d9366af1383023a19907ZZf9048e4c14fd56333b263685215",
"r1_expires_in": 1800
}