Pengenalan Keizinan Teknologi Platform-Pengguna


Keizinan Log Masuk

Jika aplikasi anda perlu mendapatkan data privasi pengguna (seperti produk, pesanan, dll.) semasa menyambung dengan platform terbuka Taobao, untuk memastikan keselamatan dan privasi data pengguna, aplikasi anda perlu mendapatkan pengguna kebenaran, iaitu, mendapatkan akses Token Akses (SessionKey asal) data pengguna. Dalam kes ini, aplikasi anda perlu membimbing pengguna melalui proses "keizinan log masuk" menggunakan akaun Taobao. Proses ini menggunakan protokol standard OAuth2.0 yang diterima di peringkat antarabangsa sebagai protokol pengesahan dan kebenaran pengguna, serta menyokong tapak web, klien mudah alih dan klien desktop.
Pada masa ini, perkhidmatan Taobao OAuth2.0 menyokong dua cara untuk mendapatkan Token Akses (token kebenaran), iaitu aliran sisi pelayan dan aliran sisi pelanggan Sila rujuk arahan berikut untuk butiran.

Nota: Produk ID Taobao (akaun Taobao) tidak boleh digunakan untuk saluran tidak rasmi Alibaba Group untuk menyediakan perkhidmatan keahlian Taobao kepada pembeli Taobao (seperti: pertanyaan pesanan, Logistik penjejakan, dsb.), sebaik sahaja penggunaan haram ditemui, platform terbuka akan segera membatalkan hak penggunaan ID Taobao bagi kunci aplikasi. 注: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

Nota khasHalaman kebenaran yang diterangkan dalam dokumen ini hanya terpakai kepada PC Jika halaman anda diakses dalam pelanggan Taobao/Tmall mudah alih, sila rujuk di sini. Jika halaman anda diakses dalam pelayar mudah alih H5, sila rujuk di sini.


1. Aliran sisi pelayan


Proses ini memerlukan aplikasi ISV untuk mempunyai aplikasi Pelayan Web, yang boleh menyimpan kunci dan status aplikasi itu sendiri, dan boleh mengakses terus pelayan kebenaran Taobao melalui https. TB1CBIbHpXXXXaIXpXXSutbFXXX.jpg

🎜1. Minta alamat masuk 🎜🎜🎜1) Dapatkan kod kebenaran (kod) 🎜 Persekitaran formal: https://oauth.taobao.com/authorize 🎜 Persekitaran kotak pasir: https://oauth.tbsandbox.com/authorize🎜2) Dapatkan token akses (access_token) 🎜 Persekitaran formal: https://oauth.taobao.com/token🎜 Persekitaran kotak pasir: https://oauth.tbsandbox.com/ token🎜🎜🎜2. Langkah keizinan🎜🎜🎜 Di sini kita mengambil persekitaran formal untuk mendapatkan access_token sebagai contoh menjadi Alamat dan data lain yang berkaitan digantikan dengan alamat kemasukan kotak pasir yang sepadan, dan proses operasi adalah konsisten dengan persekitaran formal. 🎜 Semasa menjalankan operasi kebenaran, data yang diuji client_id, client_secret, dan redirect_uri perlu diganti mengikut data aplikasi sebenar yang dibuat oleh anda Anda tidak boleh menggunakan nilai yang diberikan dalam contoh untuk ujian langsung, supaya tidak mempengaruhi kesan ujian sebenar. Rajah di bawah menunjukkan carta aliran kaedah kebenaran aliran sebelah pelayan Berikut ialah penjelasan langkah demi langkah berdasarkan carta alir. 🎜🎜🎜

1) Penyambungan url kebenaran
Penyambungan kebenaran pengguna memerlukan akses kepada url Contoh dan penerangan parameter adalah seperti berikut:
https://oauth.taobao.com/authorize?response_type=code&client_id=23075_594&http://redirect_id=23075_594&http://redirect_uri= www.oauth. net/2/&state=1212&view=web

QQ截图20170213145452.png3) Dapatkan kod2) Bimbing pengguna untuk log masuk untuk mendapatkan kebenaran
Bimbing pengguna untuk mengakses url kebenaran di atas melalui penyemak imbas, dan halaman log masuk berikut akan muncul. Pengguna memasukkan nombor akaun dan kata laluan dan mengklik butang "Log Masuk" untuk memasuki halaman kebenaran.
TB1pwkRHpXXXXXLXpXXSutbFXXX.jpg

Pada halaman yang ditunjukkan di atas, jika pengguna mengklik butang "Izinkan", TOP akan mengembalikan kod kebenaran ke alamat panggilan balik, dan aplikasi boleh mendapatkan dan menggunakan kod untuk menukar akses_token
Jika pengguna mengklik Benarkan dan bukannya mengklik butang Benarkan "Batal" akan mengembalikan hasil berikut, dengan ralat ialah kod ralat dan error_description ialah penerangan ralat. Seperti yang ditunjukkan dalam rajah di bawah: TB1l1AfHpXXXXXDXXXXSutbFXXX.jpg

Arahan:
Anda boleh menerbitkan aplikasi dalam pasaran perkhidmatan (fuwu.taobao.com Selepas aplikasi dalam talian, pengguna yang membeli aplikasi boleh menggunakan "Perkhidmatan Saya-). -Gunakan Sekarang" "Akses (gambar di bawah), sistem secara automatik akan melompat ke halaman kebenaran (jadi jika anda mengakses aplikasi dengan cara ini, anda tidak perlu menyambung URL), hanya perhatikan untuk mendapatkan kod. Pada masa yang sama, apabila memulangkan kod, ia juga akan mengembalikan maklumat yang berkaitan dengan perkhidmatan pesanan yang melalui negeri, sama seperti:
state=versionNo:1;itemCode:xxxxx (versionNo ialah nombor versi aplikasi, itemCode ialah kod pengecasan aplikasi)

4) Sebagai pertukaran untuk access_token
Gunakan arahan curl Linux untuk mendapatkan access_token (token kebenaran), seperti berikut;Untuk aplikasi, anda boleh merujuk kepada dokumentasi**示例**Contoh kod di sini . . 4& redirect_uri=http://www.oauth.net/2/ "https://oauth.taobao.com/token


. 95%E5%B8%90%E5%8F%B752",

  "w1_expires_in": 1800,  "re_expires_in": 0,  "r2_expires_in": 0,
  "expires_in": 8_640 ",
  "refresh_token": "6200e1909ca29b04685c49d67f5ZZ3675347c0c6d5abccd263685215",
  "access_token": "6200819d93906f 56333b263685215",
  "r1_expires_in": 1800
}




Contoh nilai pulangan sebagai pertukaran untuk access_token

QQ截图20170213145648.png

2. Aliran sisi pelanggan

Kaedah kebenaran aplikasi pelanggan, sesuai untuk ISV yang tidak mempunyai pelayan web bebas, tetapi boleh mengakses pelayan web bebas. dengan bantuan pelayar atau aplikasi skrip JS.

1. Minta alamat kemasukan

Persekitaran formal: https://oauth.taobao.com/authorize
Persekitaran kotak pasir: https://oauth.tbsandbox.com/authorize

2 Ambil persekitaran formal untuk mendapatkan access_token sebagai contoh Jika ia adalah persekitaran kotak pasir, sila gunakan data kotak pasir.

Pada masa yang sama, semasa proses kebenaran, parameter seperti client_id perlu diganti mengikut data sebenar aplikasi yang anda buat, jika tidak, kebenaran tidak dapat diselesaikan.

Gambar di bawah ialah carta aliran kaedah kebenaran aliran sebelah pelanggan Berikut adalah penerangan langkah demi langkah mengikut carta alir

TB1gIY_HpXXXXagXVXXSutbFXXX.jpg

1) Sambungkan url kebenaran

https://oauth. taobao.com/authorize?response_type=token&client_id=23075594&state =1212&view=web

QQ截图20170213145724.png

2) Bimbing pengguna untuk log masuk untuk mendapatkan kebenaran
Pengesahan langkah ini adalah sama seperti langkah Pelayan dan aliran sampingan pengguna untuk mengakses url kebenaran untuk kebenaran, seperti berikut.

LB1c5YZKXXXXXamXFXXXXXXXXXX.jpg

3) Dapatkan access_token

Selepas mengklik Kebenaran pada halaman di atas, TOP akan terus mengembalikan access_token ke halaman lalai Taobao (berbeza daripada kaedah aliran sisi Server untuk mengembalikan kod dahulu dan kemudian menukar access_token), yang boleh digunakan pada masa ini skrip JS (if(window.location.hash!=""){alert(window.location.hash)}
) boleh mendapatkan medan selepas halaman panggil balik # untuk mendapatkan token akses.

LB18bZlKXXXXXXdXXXXXXXXXXXX (1).jpg

Kembali contoh parameter:

https://oauth.taobao.com/oauth2?view=web#access_token=6101227f5e8c230692b130692b13476672b13476672ac93a6672ac93a6c66c 1&to ken_type=Bearer&expires_in=86400&refresh_token=6100627e3f9202c0960a6ab5bfd704939c91635892c70dd263664221&re_expires_in=81_6400_in=864000_in=86400_in=864000 00&taobao_user_id=263664221&taobao_user_nick= %E5 %95%86%E5%AE%B6%E6%B5%8B%E8%AF%95%E5%B8%90%E5%8F%B717&w1_expires_in=86400&w2_expires_in=86400&state=1212&top_C352FC53342 592F

Nota:
Kecuali top_sign, parameter yang dikembalikan di sini adalah sama dengan parameter pengembalian kebenaran aliran sisi pelayan.
top_sign ialah parameter tandatangan yang dijana oleh sistem Keizinan menggunakan kaedah aliran sisi Klien memerlukan pengesahan ketekalan parameter ini.


4) Sahkan tandatangan kebenaran

iaitu, sahkan sama ada parameter pemulangan konsisten dengan top_sign. Dalam parameter yang dikembalikan seperti di atas, susun semua kekunci dan nilai selepas tanda paun kecuali top_sign dalam susunan abjad parameter, sambungkannya bersama dalam bentuk key1+value+key2+value...., dan kemudian tambah AppSecret sebelum dan selepas mereka.
md5(utf-8:AppSecret+k1+v1+k2+v2+...+kn+vn + AppSecret).


Untuk parameter pulangan berikut, ambil parameter selepas tanda # dan gabungkannya dan tambahkan AppSecret pada permulaan dan akhir untuk mendapatkan hasil berikut: b154c6ad981 06263664221token_typeBearer
expires_in86400refresh_token6100627e3f9202c0 960a6ab5bfd704939c9163020292 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&state121269a1469a14691a14a1469a1469a1a14a14691a1a1a
untuk penyulitan md5 (rujuk kod sampel panggilan API ) dan ditukar kepada huruf besar, kita dapat: 3429C556FCD3F3FC52547DD31021592F, yang konsisten dengan top_sign. Log keluar

Proses log keluar pada masa ini hanya menyokong akses web Fungsinya adalah untuk mengosongkan kuki taobao.com, bukan untuk membatalkan kebenaran pengguna. Akses pada WAP tidak berfungsi.

1. Minta alamat penyertaan

1. Persekitaran formal: https://oauth.taobao.com/logoff

2.

2. Langkah keluar
Sambungkan url keluar (seperti
https://oauth.taobao.com/logoff?client_id=12304977&view=web
) dan lawati halaman utama Taobao. Keizinan segar semula
Token_refresh yang diperoleh melalui kebenaran boleh digunakan untuk menyegarkan tempoh r2 token akses.

Memandangkan r1 atau w1 biasanya sama dengan tempoh langganan dan secara amnya tidak perlu dimuat semula, w2 mesti dilanjutkan melalui kebenaran semula, jadi refresh_token secara amnya hanya digunakan untuk melanjutkan tempoh sah r2.

Kaedah operasi adalah serupa dengan mendapatkan token akses, hanya parameter permintaan yang berbeza, penerangan adalah seperti berikut:

Arahan berkaitan



1

Tempoh sah akses_token yang dibenarkan (tamat_dalam) adalah berkaitan dengan jenis teg (seperti alatan IT, sistem hujung belakang pedagang, dll.) dan status (seperti persekitaran formal, dalam talian, dll.) seperti berikut.
Nota: Apabila api sebenar dipanggil, tempoh kebenaran aplikasi dikawal dengan lebih tepat untuk butiran, sila rujuk kepada (2. Perihalan Tahap Keselamatan, sebagai tambahan, aplikasi seperti "Alat IT Pihak Ketiga" diterbitkan pada fuwu selepas ia dibangunkan dalam talian. Di .taobao.com, penjual perlu memesan untuk digunakan, dan tempoh kebenaran yang sepadan akan sama dengan tempoh pesanan Jika pembelian adalah selama 1 bulan, access_token yang diperolehi akan sah selama 1 bulan.

QQ截图20170213145956.png

2. Penerangan Tahap Keselamatan

Untuk lebih fleksibel mengawal keselamatan data yang dibuka pada platform terbuka Taobao dan mengurangkan risiko data pengguna dibocorkan atau diubah suai secara berniat jahat, konsep tahap keselamatan diperkenalkan.
Taobao Open Platform menandakan API (atau medan API) dan aplikasi dengan empat tahap keselamatan: r1, r2, w1, w2 dan 0,1,2,3 masing-masing. Sepadan dengan r1, r2, w1 dan w2, 4 masa tamat tempoh ditambah apabila token akses (kunci sesi) dikeluarkan: r1_expires_in, r2_expires_in, w1_expires_in, w2_expires_in. Empat nilai ini digunakan untuk mewakili tempoh sah API panggilan token akses ini (atau medan) pada setiap peringkat, seperti berikut: (Aplikasi tertakluk pada sekatan tahap keselamatan termasuk: alatan IT pihak ketiga, sistem hujung belakang pembekal perkhidmatan dan bahagian belakang modul kedai ;Sistem bahagian belakang pedagang dan aplikasi perniagaan baharu seperti yang digunakan oleh penjual tidak akan terjejas buat masa ini)

.Tahap keselamatan 24 jam24 jamYaTempoh langganan yang sama Permohonan dalam talian konsisten dengan masa pesanan, ujian persekitaran formal sah selama 24 jamTahap 3W224 jamMasa pesanan yang samaYaWaktu tempahan dalam talian adalah sama dengan masa tempahan dalam talian ujian persekitaran rasmi sah selama 24 jamTahap 2R124 jamMasa pesanan yang sama Ya Permohonan dalam talian adalah konsisten dengan masa langganan 24 jam, ujian persekitaran formal adalah Tahap 2 TidakTahap 1R124 jamMasa langganan yang samaYaPermohonan dalam talian adalah konsisten dengan masa ujian sah untuk 24 jam rasmi Tahap 1 Permohonan dalam talian dan masa pesanan Konsisten, yang ujian alam sekitar rasmi adalah sah selama 24 jam Tidak Tahap 0 30 minitTidak Tahap 0W20 minit0 minitTidak

Contoh kod

1. Dapatkan contoh akses_token

Kod contoh semuanya dilaksanakan berdasarkan sdk. Sila rujuk arahan untuk memuat turun dan menggunakan sdk. 1, Contoh JAVA . Contoh refresh_token

Berikut ialah berdasarkan contoh Java SDK, bahasa lain boleh merujuk kepada kaedah pemerolehan token, yang serupa Pada masa yang sama, apabila menguji, anda perlu menggantikan parameter ujian dengan nilai sebenar yang sepadan dengan aplikasi anda.

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();}
    } }
Tukar responseJson kepada objek di atas, atau ekstrak terus medan access_token dan token segar semula baharu daripadanya

"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,

"tamat_semula_dalam": 0,


"r2_expires_in": 0,

"tamat tempoh_dalam": 86400,

"token_type": "Pembawa",


"refresh_token": "6200e1909ca29b04685c49d67f5ZZ3675347c0c6d5abccd263685215",

"access_token": "6200819d9366af1383023a19907ZZf9048e4c14fd56333b263685215",
Sama sebagai masa pesanan YaAplikasi dalam talian adalah konsisten dengan tempoh langganan, dan ujian persekitaran rasmi sah selama 24 jamTahap 3R2
Permohonan dalam talian adalah konsisten dengan tempoh langganan, Ujian persekitaran formal sah selama 24 jamTahap 3W124 jamSama seperti masa pesanan
Ya adalah
.
30 minit
​ "r1_expires_in": 1800
}

Soalan Lazim

1 Apabila memberi kebenaran untuk mendapatkan token, kunci apl telah dihantar, tetapi id_klien adalah ralat kosong masih dilaporkan?
Satu lagi parameter keizinan, client_secret, adalah salah. Ralat ini akan dilaporkan.

Tiada syarat seperti itu boleh dilakukan dengan "menguji kebenaran dalam kotak pasir dahulu dan kemudian dalam persekitaran formal" atau ia juga boleh secara langsung "menguji kebenaran dalam persekitaran formal"

3 dokumen yang biasa digunakan berkaitan dengan kebenaran?

Pengurusan berbilang kedai: Lihat
  • Alat kebenaran pantas: Lihat
  • Cara untuk meningkatkan tahap keselamatan: Lihat
  • Butiran tahap keselamatan: Lihat
  • 4. Rujukan untuk lebih banyak isu kebenaran dan kod ralat: Lihat

    Tiada Soalan Lazim tentang dokumen ini lagi