Die Anwendungswebsite für die dritte Plattform -Anmeldeschnittstelle: http://open.51094.com/
dokumentieren:
Um mehr Entwicklungsfreunde zu erleichtern, habe ich alle Schnittstellen auf dem Markt speziell integriert, die die gemeinsame Anmeldung von Drittanbietern unterstützen. Login, die früher mehrere Entwicklungen erfordern, kann jetzt in nur einmal abgeschlossen werden. Es besteht keine Notwendigkeit, den Fortschritt des Projekts zu verzögern, indem Sie auf die Überprüfung warten. Einfach zu bedienen und einfach zu bedienen. Das Folgende ist die spezifische Verwendungsmethode dieses Plug-Ins:
1. Melden Sie sich zuerst auf der Website http://open.51094.com/ an.
2. Klicken Sie in der oberen rechten Ecke auf die Schaltfläche "Anmeldung", um sich anzumelden. Nach erfolgreichem Anmelden wird automatisch in das Management Center gesprungen.
3. Klicken Sie nach Eingabe des Verwaltungszentrums auf die Schaltfläche Anwendung erstellen, wie unten gezeigt:
4. Wählen Sie den Anwendungstyp als "Website -Anwendung" aus und wenden Sie sich nach Abschluss zur Seite zur Bewerbungsinformation.
5. Die Seite Informationenfüllung ist in der folgenden Abbildung angezeigt. Geben Sie die Anwendungsinformationen bei Bedarf korrekt ein. Klicken Sie nach Abschluss auf die Anwendung erstellen, um sie zu verwenden.
Parameterbeschreibung:
Name: Die Abkürzung der Anwendung
Details: Antragsbeschreibungsinformationen, die Anzahl der Wörter darf nicht weniger als 10 chinesische Zeichen betragen
Die Rückrufadresse erfolgreich anmelden:
Der Antragsteller empfängt die URL der Benutzerinformationen, und wir benachrichtigen den Antragsteller im Format von URL+?+ -Parametern. Erinnerst du dich, dass die URL, die Sie ausfüllen, sie nicht enthalten kann?
Unterstützte Anmeldemethoden:
Geben Sie Ihre eigene Wahl an, Standardeinstellung besteht darin, alle auszuwählen.
Erstellen Sie ein Anwendungsdiagramm
1. Sie können die JS -Adresse anzeigen, auf die die Anwendung in der Verwaltungszentrale des Benutzerzentrums verweisen muss, wie in der roten Box in der folgenden Abbildung gezeigt:
2. Fügen Sie den folgenden JS -Code zu der Seite hinzu, die Sie sich anmelden müssen
<script type = "text/javaScript" src = "http://open.51094.com/user/myscript/153dee5be21e2.html"> </script>
3. add (<span id = "hzy_fast_login"> </span>) zum Seiten -Tag, wie in der folgenden Abbildung gezeigt
4. Nach erfolgreichem Einsatz sehen Sie das entsprechende Anmeldung auf der Anmeldeseite. Wie in der Abbildung unten gezeigt.
Bitte verwenden Sie die zweite Methode zur Registrierung von Benutzern nach 2014-11-1
Plan 1 (veraltet)
Rückrufmethode | ERHALTEN | |
Rückruf -URL | Die Anmelde -Rückrufadresse wurde bei der Bewerbung für die Anwendung ausgefüllt | |
Rückrufformat | http: //url/user/hezuo.html? param =%7b%22Name%22%3a%22OH%21no%22C%22Img%2%3a%22HTTP%3A%5C%2f%5C%2Fq.qlogo 8927%5C%2F863A85B9B176E2408E05DF05D46FDB3F%5C%2F100%22%2C%22sex%22%3A0%2C%22uniq%22%3A%22qqO8HdWKMKpVI%22%2C%22from%22%3A%22qq%22%7D | |
Parameter | Nachdem Sie den Parameter -Inhalt des Parameters erhalten haben, decodieren Sie zuerst die URL -Dekodierung und führen Sie dann die JSON -Decodierung durch, um den folgenden Inhalt zu erhalten: | |
Name | Melden Sie sich an, um den Benutzernamen zu erhalten | |
img | Avatar -Adresse | |
Sex | Geschlecht | |
Uniq | Der einzige Code, der von einem Dritten erhalten wurde | |
aus | Loginquellen wie QQ, Weibo, Renren usw. | |
Plan 2
Weitere Informationen finden Sie unter: http://test.open.51094.com/index.php
Rückrufmethode | ERHALTEN | |
Rückruf -URL | Die Anmelde -Rückrufadresse wurde bei der Bewerbung für die Anwendung ausgefüllt | |
Rückrufformat | http: //url/user/hezuo.html? code = code | |
Parameter | Verwenden Sie nach Erhalt des Codparameterinhalts die Post -Methode, um anzufordern: URL: http://open.51094.com/user/auth.html Postparameter: Typ: get_user_info Code: Der zurückgegebene Codewert Appid: Der angewandte Appidwert (klicken Sie auf der Webseite auf den Anwendungsnamen, um zu erhalten). Token: Der angewandte Token -Wert (klicken Sie auf den Anwendungsnamen auf der Webseite, um zu erhalten) Die Informationen werden in Form einer JSON -Zeichenfolge zurückgegeben. Nach dem Erhalt der Informationen erhält JSON_DECODE ($ STR, TRUE) den folgenden Inhalt: (Siehe Anhang für die Erfassungsmethode) | |
Name | Melden Sie sich an, um den Benutzernamen zu erhalten | |
img | Avatar -Adresse | |
Sex | Geschlecht | |
Uniq | Der einzige Code, der von einem Dritten erhalten wurde | |
aus | Loginquellen wie QQ, Weibo, Renren usw. | |
Dieses Plug-In ist ein kostenloses Plug-In und kann für kommerzielle Zwecke verwendet werden. Bitte markieren Sie den Entwickler, wenn Sie ihn verwenden.
Anmerkungen zur Verwendung:
1. Der Domänenname der Referenz -JS -Seite muss dem Domänennamen der Rückrufadresse bei der Bewerbung übereinstimmen.
2. Das Tag mit id = 'hzy_fast_login' muss der Seite nach dem referenzierten JS hinzugefügt werden.
3. Is the requested callback url not allowed to appear?
Fehlercode -Set:
Fehlercode | Frage |
10001 | Benutzeranhilfefehler |
10002 | Das Token stimmt nicht mit der App überein |
10003 | Der angeforderte Domänenname stimmt nicht mit dem registrierten Domänennamen überein (es gibt eine Rückrufadresse, um den registrierten Domänennamen zu bestimmen). |
Auszeit | Melden Sie sich zeitlich an, müssen sich erneut anmelden |
Anhang:
PHP erhält Informationscode: Quellcode http://test.open.51094.com/index.php
1. Konfigurationsdatei open.config.php
Inhalt:
<? Php
/**
*@ Registrierte Adresse http://open.51094.com
*@ QQ Kommunikationsgruppe: 373703921
*@ Blog -Adresse: http://www.51094.com
*@ Test Adresse: http://open.51094.com/user/login.html
*
*@ Autor: [email protected]
*
**//
Define ('Appid', 'Appid erhalten, die bei der Bewerbung erhalten wurden');
definieren ('Token', 'Token -Wert, der bei der Bewerbung erhalten wird');
?>
2. Öffnen Sie die Klassendatei Open51094.class.php
<? Php
integrieren 'open.config.php';
Klasse Open51094 {
Privat $ appid;
privates $ token;
privat $ return_uri;
privat $ access_token;
private $ url = 'http://open.51094.com/user/auth.html';
Funktion __construct () {
$ this-> appid = Appid;
$ this-> token = token;
}
Funktion Me ($ code) {
#$ this-> getAccessToken ();
$ params = array (
'Typ' => 'get_user_info',
'Code' => $ Code,
'Appid' => $ this-> Appid,
'token' => $ this-> token
);
$ this-> http ($ params) zurückgeben;
}
private function http ($ postfields = '', $ method = 'post', $ 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 == 'post') {
curl_setopt ($ ci, curlopt_post, true);
if ($ postfields! = '') curl_setopt ($ ci, curlopt_postfields, $ postfields);
}
$ headers [] = "user-Agent: 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 (! leer ($ response)) $ json_r = json_decode ($ response, true);
$ json_r zurückgeben;
}
}
?>
3. kehren Sie zur Seite zurück.php zurück
<? Php
integrieren 'open51094.class.php';
$ open = new Open51094 ();
$ code = $ _get ['code'];
var_dump ($ open-> me ($ code));
?>
Java erhält Informationscode:
import Java.util.date;
import Java.util.uuid;
importieren javax.servlet.http.httpServletRequest;
importieren javax.servlet.http.httpServletResponse;
import org.apache.struts2.servletactioncontext;
import org.json.jsonObject;
import org.springframework.beans.factory.annotation.autowired;
import org.springframework.context.annotation.scope;
import org.springframework.stereotype.controller;
@Suppresswarnings ("Serial")
@Regler
@Scope ("Prototyp")
öffentliche Klasse UserthirdPartyAction {
// Parameter, die von Plattformen von Drittanbietern bereitgestellt werden
private statische String appid = "15 *********";
private statische String -Token = "14 *********";
public String dritterlogin () {
HttpServletRequest request = servletActionContext.getRequest ();
String code = checkNull.Check (request.getParameter ("Code"));
System.out.println ("Login von Drittanbietern gibt Ergebnis zurück:"+code);
if ("". Equals (Code) || null == Code) {
System.out.println ("Die Rückruffunktion wird nicht ausgeführt");
zurück "scheitern";
}anders{
String url = httprequest.sendPost ("http://open.51094.com/user/auth.html", "type = get_user_info & code ="+code+"& appid ="+appid+"& token ="+token+");
System.out.println (URL);
// Analyseergebnisse
JsonObject jsonObj = new JsonObject (URL);
// Erhalten Sie das Wertobjekt des angegebenen JSON -Schlüsselobjekts
// Analyse des eingekapselten Objekts
zurück "umleiten";
}
}
}
Httprequet -Klasse:
Paket Wzh.http;
Import Java.io.BufferedReader;
importieren java.io.ioException;
importieren java.io.inputStreamReader;
Import Java.io.printwriter;
importieren java.net.url;
importieren java.net.urlConnection;
importieren java.util.list;
import Java.util.map;
öffentliche Klasse httprequest {/**
* Senden Sie eine Anfrage an die angegebene URL, um Methode zu erhalten
*
* @param url
* Die URL zum Senden der Anfrage
* @param param
* Anforderungsparameter, die Anforderungsparameter sollten in Form von name1 = value1 & name2 = value2 liegen.
* @Return URL -Antwortergebnisse für die Remote -Ressource, die durch dargestellt wird
*/
public static String sendget (String -URL, String Param) {String result = "";
BufferedReader in = null;
versuchen {String urlnamestring = url + "?" + Param;
URL realUrl = neue URL (urlnamestring);
// Öffnen Sie die Verbindung zur URL
UrlConnection Connection = realUrl.OpenConnection ();
// Setzen Sie die Attribute für gemeinsame Anforderungen
Connection.SetRequestProperty ("Akzeptieren", "*/*"); Connection.SetRequestProperty ("Verbindung", "Keep-Alive"); Connection.SetRequestProperty ("Benutzeragent","Mozilla/4.0 (kompatibel; MSIE 6.0; Windows NT 5.1; SV1)");
// eine tatsächliche Verbindungsverbindung erstellen.Connect ();
// Erhalten Sie alle Felder für Antwortheader
Karte <String, Liste <String >> map = Connection.GetheaDerFields ();
// durch alle Response -Headerfelder durchlaufen
für (String -Schlüssel: map.keyset ()) {System.out.println (Schlüssel + "->" + map.get (Schlüssel));
}
// Definieren Sie den BufferedReader -Eingangsstream, um die URL -Antwort zu lesen
in = neuer BufferedReader (neuer InputStreamReader (
connection.getInputStream ()));
Stringlinie;
while ((line = in.readline ())! = null) {Ergebnis += Linie;
}
} catch (Ausnahme e) { System.out.println ("Ausnahme beim Senden von GET -Anfrage!" + E);E. printstacktrace ();
}
// Verwenden Sie schließlich blockiert, um den Eingangsstrom zu schließen
Endlich { versuchen { if (in! = null) {in.close ();
}
} catch (Ausnahme E2) {e2.printstacktrace ();
}
}
Rückgabeergebnis;
}
/**
* Senden Sie eine Anfrage zur Postmethode an die angegebene URL
*
* @param url
* Die URL zum Senden der Anfrage
* @param param
* Anforderungsparameter, die Anforderungsparameter sollten in Form von name1 = value1 & name2 = value2 liegen.
* @Return Antwort Ergebnis der dargelegten Remote -Ressource
*/
public static String sendPost (String -URL, String Param) {Printwriter out = null;
BufferedReader in = null;
String result = "";
versuchen {URL realUrl = neue URL (URL);
// Öffnen Sie die Verbindung zur URL
UrlConnection conn = realUrl.openconnection ();
// Setzen Sie die Attribute für gemeinsame Anforderungen
Conn.SetRequestProperty ("Akzeptieren", "*/*"); Conn.SetRequestProperty ("Verbindung", "Keep-Alive"); Conn.SetRequestProperty ("Benutzer-Agent","Mozilla/4.0 (kompatibel; MSIE 6.0; Windows NT 5.1; SV1)");
// Die folgenden zwei Zeilen müssen so eingestellt sein, dass eine Postanforderung gesendet wird
conn.setDooutput (true);
Conn.SetDoInput (true);
// den Ausgangsstrom, der dem UrlConnection -Objekt entspricht
out = neuer Pressewriter (Conn.GetOutputStream ());
// Anfrageparameter senden
out.print (param);
// Puffer des Flush -Ausgangsstroms
out.flush ();
// Definieren Sie den BufferedReader -Eingangsstream, um die URL -Antwort zu lesen
in = neuer BufferedReader (
neuer InputStreamReader (Conn.GetInputStream ()));
Stringlinie;
while ((line = in.readline ())! = null) {Ergebnis += Linie;
}
} catch (Ausnahme e) { System.out.println ("Ausnahme beim Senden von Postanforderung!" +E);E. printstacktrace ();
}
// Verwenden Sie schließlich blockiert, um den Ausgangsstrom und den Eingangsstream zu schließen
Endlich{ versuchen{ if (out! = null) {out.close ();
}
if (in! = null) {in.close ();
}
}
catch (ioException ex) {ex.printstacktrace ();
}
}
Rückgabeergebnis;
}
}
Post -Schreib- und Lesenmethode anhängen:
// Austausch, um die würdige Methode zu erhalten, Post -Methode;
öffentliches statisches String -Login (String -Code)
{
String info = string.empty;
if (Code! = "" && code! = null)
{
Httphelper m_http = new httphelper ();
Httpitem item = new httpItem ();
// item.method = "post";
item.url = "http://open.51094.com/user/auth.html";
item.method = "post";
item.encoding = coding.getEcoding ("gbk");
item.contentType = "Anwendung/x-www-form-rencoded; charSet = gbk";
item.postData = string.format ("type = get_user_info & code = {0} & appid = 1558be447a9ec7 & token = e383684d8f0ACB39D622457F361DC1DC", Code);
// item.postdata = sbtemp.toString ();
Httpresult result = m_http.gethtml (item);
String resulthtml = result.html;
Jobject obj = jobject.Parse (Resulthtml);
String name = obj ["name"]. toString ();
String img = obj ["img"]. toString ();
String sex = obj ["sex"]. toString ();
String uniq = obj ["uniq"]. toString ();
String von = obj ["from"]. toString ();
info = name + "@" + img + "@" + sex + "@" + uniq + "@" + von;
}
Info zurückgeben;
}
// Akzeptiere den Code, um die Code -Seite zurückzugeben
// Schnittstellenanmeldung
String code = request ["code"];
String [] arr = publicLogin.login (Code) .Split ('@');
if (arr.length == 5)
{
String unip = arr [3];
String sql = string.format ("SELECT * von bs_user wobei unip = '{0}'", unip);
if (csa.dal.dbaccess.getrs (sql) .rows.count> 0)
{
if (csa.dal.dbaccess.getrs (SQL) .Rows [0] ["Passwort"]. ToString () == "" || csa.dal.dbaccess.getrs (SQL) .ROWS [0] ["Passwort"] == NULL)
{
string str = string.format ("location.href = 'myInformation.aspx? unip = {0}'", arr [3]);
Csa.hc.common.echojs (str);
}
anders
{
Bs_user user = new bs_user ();
user.Unip = unip;
Factory.getUserbllinstance (). Loginunip (Benutzer);
if (curinfo.curuser! = null)
{
LevelName = curinfo.curuser.levelName;
name = curinfo.curuser.name;
sex = curinfo.curuser.sex;
pwd = curinfo.curuser.Password;
img = curinfo.curuser.pic;
}
Csa.hc.common.echojs ("location.href = 'myInformation.aspx'");
}
}
anders
{
// Mitgliedscode generieren
String date = datetime.now.toString ("ymdhmsSffff");
String usercode = getTreenumrandomtop () + Datum + getTreenumrandomend ();
string ip = httpcontext.current.request.userHostaddress;
String iNSSSQL = string.format (@"in [bs_user] ([Code], [Benutzername], [LevelName], [RealName], [Sex], [PIC], [unip], [Passwort], [Telefon], [FXIP]) einfügen.
Values ('{0}', '{1}', '{2}', '{3}', '{4}', '{5}', '{6}', '{7}', '{8}', '{9}'), usercode, arr [0] .Tim ('. usercode.substring (3, 8), arr [0] .trim ('"'), arr [2], arr [1] .trim ('"'), arr [3], csa.security
int row = csa.dal.dbaccess.executenonQuery (INSSQL);
if (row> 0)
{
Bs_user user = new bs_user ();
user.Unip = arr [3];
Factory.getUserbllinstance (). Loginunip (Benutzer);
string str = string.format ("location.href = 'myInformation.aspx? unip = {0}'", arr [3]);
Csa.hc.common.echojs (str);
}
}
}