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. 🎜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 span>
🎜🎜🎜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
3) 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.
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:
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
Contoh nilai pulangan sebagai pertukaran untuk access_token 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 2 Ambil persekitaran formal untuk mendapatkan access_token sebagai contoh Jika ia adalah persekitaran kotak pasir, sila gunakan data kotak pasir. Gambar di bawah ialah carta aliran kaedah kebenaran aliran sebelah pelanggan Berikut adalah penerangan langkah demi langkah mengikut carta alir https://oauth. taobao.com/authorize?response_type=token&client_id=23075594&state =1212&view=web 2) Bimbing pengguna untuk log masuk untuk mendapatkan kebenaran 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)} 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: 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. 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. Persekitaran formal: https://oauth.taobao.com/logoff 2. Langkah keluar Kaedah operasi adalah serupa dengan mendapatkan token akses, hanya parameter permintaan yang berbeza, penerangan adalah seperti berikut: 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. 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. 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. "w2_expires_in": 0, "taobao_user_id": "263685215",
"tamat_semula_dalam": 0,
"tamat tempoh_dalam": 86400,
1 Apabila memberi kebenaran untuk mendapatkan token, kunci apl telah dihantar, tetapi id_klien adalah ralat kosong masih 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?
. 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
} 2. Aliran sisi pelanggan
Persekitaran kotak pasir: https://oauth.tbsandbox.com/authorize
Pengesahan langkah ini adalah sama seperti langkah Pelayan dan aliran sampingan pengguna untuk mengakses url kebenaran untuk kebenaran, seperti berikut.
) boleh mendapatkan medan selepas halaman panggil balik # untuk mendapatkan token akses.
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
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
Sambungkan url keluar (seperti
https://oauth.taobao.com/logoff?client_id=12304977&view=web
) dan lawati halaman utama Taobao. Keizinan segar semulaToken_refresh yang diperoleh melalui kebenaran boleh digunakan untuk menyegarkan tempoh r2 token akses.
1
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.
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) 24 jam
24 jamYaTempoh langganan yang sama Sama sebagai masa pesanan Ya Aplikasi dalam talian adalah konsisten dengan tempoh langganan, dan ujian persekitaran rasmi sah selama 24 jam Tahap 3 R2 Permohonan dalam talianPermohonan dalam talian adalah konsisten dengan tempoh langganan, Ujian persekitaran formal sah selama 24 jam Tahap 3 W1 24 jam Sama seperti masa pesanan Ya adalah konsisten dengan masa pesanan, ujian persekitaran formal sah selama 24 jamTahap 3 W224 jam Masa pesanan yang sama Ya Waktu tempahan dalam talian adalah sama dengan masa tempahan dalam talian ujian persekitaran rasmi sah selama 24 jam Tahap 2 R1 24 jam Masa pesanan yang sama Ya Permohonan dalam talian adalah konsisten dengan masa langganan 24 jam, ujian persekitaran formal adalah Tahap 2 . TidakTahap 1 R1 24 jam Tidak Tahap 0 Masa langganan yang sama Ya Permohonan 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 30 minit 30 minit Tidak Tahap 0 W2 0 minit 0 minit Tidak Contoh kod
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
"r2_expires_in": 0,
"refresh_token": "6200e1909ca29b04685c49d67f5ZZ3675347c0c6d5abccd263685215",
"r1_expires_in": 1800
Soalan Lazim
Satu lagi parameter keizinan, client_secret, adalah salah. Ralat ini akan dilaporkan.
Tiada Soalan Lazim tentang dokumen ini lagi