Situs web aplikasi untuk antarmuka login platform ketiga: http://open.51094.com/
dokumen:
Untuk memfasilitasi lebih banyak teman pengembangan, saya secara khusus mengintegrasikan semua antarmuka di pasar yang mendukung login bersama pihak ketiga. Masuk yang dulu membutuhkan banyak perkembangan sekarang dapat diselesaikan hanya dalam satu kali. Tidak perlu menunda kemajuan proyek dengan menunggu ulasan. Mudah digunakan dan mudah dioperasikan. Berikut ini adalah metode penggunaan spesifik plug-in ini:
1. Masuk pertama ke situs web http://open.51094.com/.
2. Klik tombol "Login" di sudut kanan atas untuk masuk. Setelah masuk dengan sukses, itu akan secara otomatis melompat ke pusat manajemen.
3. Setelah memasuki pusat manajemen, klik tombol Buat Aplikasi, seperti yang ditunjukkan di bawah ini:
4. Pilih jenis aplikasi sebagai "aplikasi situs web", dan setelah selesai, lompat ke halaman pengisian informasi aplikasi.
5. Halaman pengisian informasi ditampilkan pada gambar di bawah ini. Isi informasi aplikasi dengan benar sesuai kebutuhan. Setelah selesai, klik Buat Aplikasi untuk menggunakannya.
Deskripsi Parameter:
Nama: Singkatan dari Aplikasi
Detail: Informasi Deskripsi Aplikasi, jumlah kata tidak boleh kurang dari 10 karakter Cina
Login Berhasil Callback Address:
Pemohon menerima URL informasi pengguna, dan kami memberi tahu pemohon dalam format parameter URL+? Ingatlah bahwa URL yang Anda isi tidak dapat menahannya?
Metode login yang didukung:
Berikan pilihan Anda sendiri, default adalah memilih semua.
Buat diagram aplikasi
1. Anda dapat melihat alamat JS yang perlu dirujuk oleh aplikasi di pusat manajemen pusat pengguna, seperti yang ditunjukkan pada kotak merah pada gambar di bawah ini:
2. Tambahkan kode JS berikut ke halaman yang Anda butuhkan untuk masuk
<type script = "Text/JavaScript" src = "http://open.51094.com/user/myscript/153dee5be21e2.html"> </script>
3. Tambah (<span id = "hzy_fast_login"> </span>) ke tag halaman seperti yang ditunjukkan pada gambar berikut
4. Setelah berhasil bergabung, Anda dapat melihat login yang sesuai di halaman login. Seperti yang ditunjukkan pada gambar di bawah ini.
Silakan gunakan metode kedua untuk mendaftarkan pengguna setelah 2014-11-1
Paket 1 (sudah usang)
Metode panggilan balik | MENDAPATKAN | |
URL panggilan balik | Alamat panggilan balik login diisi saat mengajukan permohonan aplikasi | |
Format Callback | http: //url/user/hezuo.html? Param =%7b%22Name%22%3a%22OH%21no%22%2c%22Img%22%3a%22HTTP%3A%5c%2f%%2fq.QLOGO.CN%5C%2fq%2c%2fq. QLOGO.CN%5c%2fqp 2cpq 8927%5c%2F863A85B9B176E2408E05DF05D46FDB3F%5C%2F100%22%2C%22Sex%22%3A0%2C%22UniQ%22%3A%22QO8HDWKMKPVI%22%3A%22%22QO8HDWKMKPVI%22%3A%22%22QO8HDWKMKPVI%22%22%22%22%22%22%22% | |
parameter | Setelah mendapatkan konten parameter paramer, lakukan decoding URL terlebih dahulu, dan kemudian melakukan decoding JSON untuk mendapatkan konten berikut: | |
nama | Masuk untuk mendapatkan nama pengguna | |
img | Alamat avatar | |
seks | jenis kelamin | |
uniq | Satu -satunya kode yang diperoleh oleh pihak ketiga | |
dari | Sumber login seperti QQ, Weibo, Renren, dll. | |
Rencana 2
Silakan merujuk ke: http://test.open.51094.com/index.php
Metode panggilan balik | MENDAPATKAN | |
URL panggilan balik | Alamat panggilan balik login diisi saat mengajukan permohonan aplikasi | |
Format Callback | http: //url/user/hezuo.html? code = kode | |
parameter | Setelah mendapatkan konten parameter kode, gunakan metode pos untuk meminta: URL: http://open.51094.com/user/auth.html Parameter Posting: Jenis: get_user_info Kode: Nilai kode yang dikembalikan APPID: Nilai appID diterapkan (klik nama aplikasi pada halaman web yang akan diperoleh) Token: Nilai token diterapkan (klik nama aplikasi pada halaman web yang akan diperoleh) Informasi akan dikembalikan dalam bentuk string JSON. Setelah mendapatkan informasi, JSON_DECODE ($ str, true) akan mendapatkan konten berikut: (Lihat Lampiran untuk metode akuisisi) | |
nama | Masuk untuk mendapatkan nama pengguna | |
img | Alamat avatar | |
seks | jenis kelamin | |
uniq | Satu -satunya kode yang diperoleh oleh pihak ketiga | |
dari | Sumber login seperti QQ, Weibo, Renren, dll. | |
Plug-in ini adalah plug-in gratis dan dapat digunakan untuk tujuan komersial. Harap tandai pengembang saat menggunakannya.
Catatan tentang penggunaan:
1. Nama domain halaman JS referensi harus sama dengan nama domain alamat callback saat mendaftar.
2. Tag dengan id = 'hzy_fast_login' harus ditambahkan ke halaman setelah JS yang direferensikan.
3. Apakah URL panggilan balik yang diminta tidak diizinkan muncul?
Set kode kesalahan:
Kode kesalahan | pertanyaan |
10001 | Kesalahan appid pengguna |
10002 | Token tidak cocok dengan appid |
10003 | Nama domain yang diminta tidak cocok dengan nama domain terdaftar (ada alamat panggilan balik untuk menentukan nama domain terdaftar) |
waktu keluar | Login diatur waktu, perlu masuk lagi |
lampiran:
PHP memperoleh kode informasi: kode sumber http://test.open.51094.com/index.php
1. File konfigurasi open.config.php
isi:
<? php
/**
*@ Alamat Terdaftar http://open.51094.com
*@ QQ Communication Group: 373703921
*@ Alamat blog: http://www.51094.com
*@ Alamat Tes: http://open.51094.com/user/login.html
*
*@ penulis: [email protected]
*
**/
define ('appid', 'appID diperoleh saat menerapkan');
Tentukan ('token', 'nilai token yang diperoleh saat menerapkan');
?>
2. Open Class File Open51094.class.php
<? php
Sertakan 'open.config.php';
kelas open51094 {
Private $ appid;
Token $ pribadi;
private $ return_uri;
private $ access_token;
private $ url = 'http://open.51094.com/user/auth.html';
fungsi __construct () {
$ this-> appId = appId;
$ this-> token = token;
}
function me ($ code) {
#$ this-> getAccessToken ();
$ params = array (
'type' => 'get_user_info',
'kode' => $ code,
'appid' => $ this-> appid,
'token' => $ this-> token
);
return $ this-> http ($ params);
}
fungsi pribadi http ($ postfields = '', $ method = 'pos', $ headers = array ()) {
$ ci = curl_init ();
curl_setopt ($ ci, curlopt_ssl_verifypeer, false);
curl_setopt ($ ci, curlopt_returntransfer, 1);
curl_setopt ($ ci, curlopt_connecttimeout, 30);
curl_setopt ($ ci, curlopt_timeout, 30);
if ($ method == 'pos') {
curl_setopt ($ ci, curlopt_post, true);
if ($ PostFields! = '') curl_setopt ($ ci, curlopt_postfields, $ postfields);
}
$ headers [] = "Pengguna-Agen: 51094php (open.51094.com)";
curl_setopt ($ ci, curlopt_httpheader, $ headers);
curl_setopt ($ ci, curlopt_url, $ this-> url);
$ response = curl_exec ($ ci);
curl_close ($ ci);
$ json_r = array ();
if (! empt ($ response)) $ json_r = json_decode ($ response, true);
mengembalikan $ json_r;
}
}
?>
3. Kembali ke halaman back.php
<? php
Sertakan 'open51094.class.php';
$ open = Open51094 baru ();
$ code = $ _get ['kode'];
var_dump ($ open-> me ($ code));
?>
Java memperoleh kode informasi:
impor java.util.date;
impor java.util.uuid;
impor javax.servlet.http.httpservletRequest;
impor javax.servlet.http.httpservletResponse;
impor org.apache.struts2.servletactionContext;
impor org.json.jsonobject;
impor org.springframework.beans.factory.annotation.Autowired;
impor org.springframework.context.annotation.scope;
impor org.springframework.stereotype.controller;
@Suppresswarnings ("serial")
@Controller
@Scope ("prototipe")
Public Class UserTheRdPartyAction {
// Parameter yang disediakan oleh platform pihak ketiga
Private Static String AppID = "15 *********";
Token string statis pribadi = "14 *********";
Public String ThirdLogin () {
HttpservletRequest request = servletActionContext.getRequest ();
Kode string = checknull.check (request.getParameter ("kode"));
System.out.println ("Hasil Pengembalian Login Pihak Ketiga:"+Kode);
if ("". Equals (kode) || null == kode) {
System.out.println ("Fungsi panggilan balik tidak dijalankan");
mengembalikan "gagal";
}kalau tidak{
String url = httprequest.sendpost ("http://open.51094.com/user/auth.html", "type = get_user_info & kode ="+kode+"& appid ="+appid+"& token ="+token+"");
System.out.println (URL);
//Hasil analisa
JsonObject jsonobj = new jsonObject (url);
// Dapatkan objek nilai dari objek kunci JSON yang ditentukan
// Parse objek yang dienkapsulasi
mengembalikan "pengalihan";
}
}
}
Kelas httprekuet:
paket wzh.http;
impor java.io.bufferedReader;
impor java.io.ioException;
impor java.io.inputStreamReader;
impor java.io.printwriter;
impor java.net.url;
impor java.net.urlconnection;
impor java.util.list;
impor java.util.map;
kelas publik httpRequest {/**
* Kirim permintaan ke URL yang ditentukan untuk metode get
*
* URL @param
* URL untuk mengirim permintaan
* @param param
* Parameter permintaan, parameter permintaan harus dalam bentuk nama1 = value1 & name2 = value2.
* Hasil respons URL @return untuk sumber daya jarak jauh yang diwakili oleh
*/
public static string sendGet (string url, string param) {Hasil string = "";
BufferedReader di = null;
mencoba {String urlnamestring = url + "?" + param;
Url realUrl = URL baru (urlnamestring);
// Buka koneksi ke URL
Koneksi UrlConnection = RealUrl.openconnection ();
// Tetapkan atribut permintaan umum
connection.setRequestProperty ("terima", "*/*"); Connection.setRequestProperty ("Connection", "Keep-Alive"); Connection.setRequestProperty ("User-Agent","Mozilla/4.0 (kompatibel; MSIE 6.0; Windows NT 5.1; SV1)");
// Buat koneksi koneksi aktual.connect ();
// Dapatkan semua bidang header respons
Peta <String, List <String>> MAP = Connection.GetHeaderFields ();
// iterate melalui semua bidang header respons
untuk (tombol string: map.keyset ()) {System.out.println (key + "->" + Map.get (key));
}
// Tentukan aliran input BufferedReader untuk membaca respons URL
di = BufferedReader baru (inputStreamReader baru (
connection.getInputStream ()));
Garis string;
while ((line = in.readline ())! = null) {Hasil += baris;
}
} catch (Exception e) { System.out.println ("Pengecualian terjadi saat mengirim permintaan mendapatkan!" + E);e.printstacktrace ();
}
// Gunakan akhirnya blok untuk menutup aliran input
Akhirnya { mencoba { if (in! = null) {melampirkan();
}
} catch (Exception e2) {e2.printstacktrace ();
}
}
hasil pengembalian;
}
/**
* Kirim permintaan untuk metode pos ke URL yang ditentukan
*
* URL @param
* URL untuk mengirim permintaan
* @param param
* Parameter permintaan, parameter permintaan harus dalam bentuk nama1 = value1 & name2 = value2.
* @return response hasil dari sumber daya jarak jauh yang diwakili
*/
public static string sendPost (string url, string param) {Printwriter out = null;
BufferedReader di = null;
Hasil string = "";
mencoba {URL RealUrl = URL baru (URL);
// Buka koneksi ke URL
Urlconnection conn = realUrl.openconnection ();
// Tetapkan atribut permintaan umum
Conn.setRequestProperty ("Recept", "*/*"); Conn.setRequestProperty ("Connection", "Keep-Alive"); Conn.setRequestProperty ("User-Agent","Mozilla/4.0 (kompatibel; MSIE 6.0; Windows NT 5.1; SV1)");
// Dua baris berikut harus diatur untuk mengirim permintaan pos
Conn.SetDoOutput (true);
Conn.setDoInput (true);
// Dapatkan aliran output yang sesuai dengan objek UrlConnection
out = printwriter baru (conn.getoutputStream ());
// Kirim parameter permintaan
out.print (param);
// buffer aliran output flush
out.flush ();
// Tentukan aliran input BufferedReader untuk membaca respons URL
di = BufferedReader baru (
inputStreamReader baru (conn.getInputStream ()));
Garis string;
while ((line = in.readline ())! = null) {Hasil += baris;
}
} catch (Exception e) { System.out.println ("Pengecualian terjadi saat mengirim permintaan pos!" +E);e.printstacktrace ();
}
// Gunakan blok akhirnya untuk menutup aliran output dan aliran input
Akhirnya{ mencoba{ if (out! = null) {out.close ();
}
if (in! = null) {melampirkan();
}
}
Catch (ioException ex) {Ex.PrintStackTrace ();
}
}
hasil pengembalian;
}
}
Lampirkan Metode Posting Penulisan dan Membaca:
// pertukaran untuk mendapatkan metode yang layak, metode pos;
Login string statis publik (kode string)
{
info string = string.empty;
if (kode! = "" && code! = null)
{
Httphelper m_http = httphelper baru ();
Item httpitem = httpitem baru ();
// item.method = "post";
item.url = "http://open.51094.com/user/auth.html";
item.method = "post";
item.encoding = encoding.getEncoding ("gbk");
item.contentType = "Application/X-WWW-Form-Urlencoded; Charset = GBK";
item.postdata = string.Format ("type = get_user_info & code = {0} & appid = 1558be447a9ec7 & token = E383684D8F0ACB39D622457F361DC1DC", kode);
// item.postdata = sBtemp.toString ();
Httpresult hasil = m_http.getHtml (item);
string resulthtml = result.html;
Jobject obj = jobject.parse (resulthtml);
name string = obj ["name"]. tostring ();
string img = obj ["img"]. tostring ();
string sex = obj ["sex"]. tostring ();
string uniq = obj ["uniq"]. tostring ();
string from = obj ["from"]. tostring ();
info = name + "@" + img + "@" + sex + "@" + uniq + "@" + from;
}
pengembalian info;
}
// Terima kode untuk mengembalikan halaman kode
// Antarmuka login
Kode String = Permintaan ["kode"];
string [] arr = publiclogin.login (kode) .split ('@');
if (arr.length == 5)
{
string unip = arr [3];
string sql = string.format ("pilih * dari bs_user di mana unip = '{0}'", unip);
if (csa.dal.dbaccess.getrs (sql) .rows.count> 0)
{
if (csa.dal.dbaccess.getrs (sql) .rows [0] ["kata sandi"]. tostring () == "" || csa.dal.dbaccess.getrs (sql) .rows [0] ["kata sandi"] == null)
{
string str = string.Format ("location.href = 'myInformation.aspx? unip = {0}'", arr [3]);
Csa.hc.common.echojs (str);
}
kalau tidak
{
BS_USER USER = BS_USER baru ();
user.unip = unip;
Factory.getUserbllinStance (). Loginunip (pengguna);
if (curinfo.curuser! = null)
{
levelName = curinfo.curuser.levelname;
name = curinfo.curuser.name;
seks = curinfo.curuser.sex;
pwd = curinfo.curuser.password;
img = curinfo.curuser.pic;
}
Csa.hc.common.echojs ("location.href = 'myinformation.aspx'");
}
}
kalau tidak
{
// menghasilkan kode anggota
date string = datetime.now.toString ("ymdhmssffff");
string usercode = gettreenumrandomtop () + tanggal + gettreenumrandomend ();
string ip = httpcontext.current.Request.userhostaddress;
string inssql = string.format (@"masukkan ke [bs_user] ([kode], [nama pengguna], [levelName], [realname], [seks], [pic], [unip], [kata sandi], [telepon], [fxip]))
Values ('{0}', '{1}', '{2}', '{3}', '{4}', '{5}', '{6}', '{7}', '{8},' {9} "", "fRIM, '0]. usercode.substring (3, 8), arr [0] .trim ('"'), arr [2], arr [1] .trim ('"'), arr [3], csa.security.encrypt.getmd5 ("123456"), "fkt_" + usercode.substring (3, 8)), "fkt_" + usercode.substring (3, 8)), "fkt_" + usercode.substring (3, 8)
int row = csa.dal.dbaccess.executenonQuery (inssql);
if (baris> 0)
{
BS_USER USER = BS_USER baru ();
user.unip = arr [3];
Factory.getUserbllinStance (). Loginunip (pengguna);
string str = string.Format ("location.href = 'myInformation.aspx? unip = {0}'", arr [3]);
Csa.hc.common.echojs (str);
}
}
}