Веб -сайт приложения для третьего интерфейса входа в систему платформы: http://open.51094.com/
документ:
Чтобы облегчить больше друзей по развитию, я специально интегрировал все интерфейсы на рынке, которые поддерживают сторонний совместный логин. Вход, который раньше требует нескольких разработок, теперь может быть завершен за один раз. Нет необходимости задержать прогресс проекта, ожидая обзора. Простой в использовании и просты в эксплуатации. Ниже приведен конкретный метод использования этого плагина:
1. Сначала войдите на веб -сайт http://open.51094.com/.
2. Нажмите кнопку «Вход» в правом верхнем углу, чтобы входить в систему. После успешного входа в систему она автоматически перейдет в центр управления.
3. После входа в центр управления нажмите кнопку «Создать приложение», как показано ниже:
4. Выберите тип приложения как «Приложение веб -сайта», а после завершения перейдите на страницу заполнения информации о приложении.
5. Страница заполнения информации показана на рисунке ниже. Заполните информацию о приложении правильно по мере необходимости. После завершения нажмите «Создать приложение», чтобы использовать его.
Описание параметра:
Имя: аббревиатура приложения
Подробная информация: Описание Приложения Информация, количество слов должно составлять не менее 10 китайских иероглиф.
Вход в систему успешно обратный адрес:
Заявитель получает URL -адрес пользовательской информации, и мы уведомляем заявителя в формате параметров URL+?+. Помните, что URL, который вы заполняете, не может сдержать его?
Поддерживаемые методы входа в систему:
Предоставьте свой собственный выбор, по умолчанию выбирать все.
Создать прикладную диаграмму
1. Вы можете просмотреть адрес JS, который необходимо ссылаться на приложение в центре управления пользовательским центром, как показано в красной коробке на рисунке ниже:
2. Добавьте следующий код JS на страницу, которую вам нужно войти в систему
<script type = "text/javascript" src = "http://open.51094.com/user/myscript/153dee5be21e2.html"> </script>
3. Добавить (<span id = "hzy_fast_login"> </span>) к тегу страницы, как показано на следующем рисунке
4. После успешного присоединения вы можете увидеть соответствующий вход на странице входа в систему. Как показано на рисунке ниже.
Пожалуйста, используйте второй метод регистрации пользователей после 2014-11-1
План 1 (устаревший)
Метод обратного вызова | ПОЛУЧАТЬ | |
Обратный вызов URL | Адрес обратного вызова входа в систему заполнен при подаче заявки на приложение | |
Обратный формат | http: //url/user/hezuo.html? Param =%7b%22 -name 22%3A%22OH%21NO%22%2C%22IMG%22%3A%22HTTP%3A%5C%2F%5C%2FQ.QLOGO.CN%5C%2FQP%5C%2F% 8927%5C%2F863A85B9B176E2408E05DF05D46FDB3F%5C%2F100%22%2C%22SEX%22%3A0%2C%22UNIQ%22%3A%22QQO8HDWKMKPVI%22%22%22%22%3A%3A%3A%3A%3A%3A%3A%3A%3A%3A%3A%3A%3A%3A%3A%3A%3A%3A%3A%3A%3A%3A%3A%3A%3A%3A%3A%3A%3A%22%3A%3A%3A%3A%3A%3A | |
параметр | После получения содержания параметра параметра сначала выполните декодирование URL, а затем выполнив декодирование JSON, чтобы получить следующее содержание: | |
имя | Войдите в систему, чтобы получить имя пользователя | |
IMG | Аватар Адрес | |
секс | пол | |
Университет | Единственный код, полученный третьей стороной | |
от | Источники входа в систему, такие как QQ, Weibo, Renren и т. Д. | |
План 2
Пожалуйста, см.
Метод обратного вызова | ПОЛУЧАТЬ | |
Обратный вызов URL | Адрес обратного вызова входа в систему заполнен при подаче заявки на приложение | |
Обратный формат | http: //url/user/hezuo.html? Code = code | |
параметр | После получения содержимого параметра кода используйте метод POST для запроса: URL: http://open.51094.com/user/auth.html Post Paramets: Тип: get_user_info Код: возвращенное значение кода APPID: применяется приложное значение (нажмите имя приложения на веб -странице, чтобы получить) Токен: применяется значение токена (нажмите имя приложения на веб -странице, чтобы получить) Информация будет возвращена в виде строки JSON. После получения информации JSON_DECODE ($ str, true) получит следующий контент: (см. Приложение для метода приобретения) | |
имя | Войдите в систему, чтобы получить имя пользователя | |
IMG | Аватар Адрес | |
секс | пол | |
Университет | Единственный код, полученный третьей стороной | |
от | Источники входа в систему, такие как QQ, Weibo, Renren и т. Д. | |
Этот плагин представляет собой бесплатный плагин и может использоваться для коммерческих целей. Пожалуйста, отметьте разработчика при его использовании.
Примечания об использовании:
1. Доменное имя страницы ссылки JS должно быть таким же, как и доменное имя адреса обратного вызова при применении.
2. Тэг с id = 'hzy_fast_login' должен быть добавлен на страницу после ссылки на JS.
3. Разрешенный URL -адрес обратного вызова не появляется?
Набор кода ошибки:
Код ошибки | вопрос |
10001 | Пользовательская аппетная ошибка |
10002 | Токен не соответствует аппетиту |
10003 | Запрашиваемое доменное имя не соответствует зарегистрированному доменному имени (есть адрес обратного вызова, чтобы определить зарегистрированное доменное имя) |
время | Войдите по времени, необходимо снова войти в систему |
Приложение:
PHP получает информационный код: исходный код http://test.open.51094.com/index.php
1. Файл конфигурации open.config.php
содержание:
<? Php
/**
*@ Зарегистрированный адрес http://open.51094.com
*@ QQ Communication Group: 373703921
*@ Адрес блога: http://www.51094.com
*@ Тестовый адрес: http://open.51094.com/user/login.html
*
*@ Автор: [email protected]
*
**/
определить («appid», «appid, полученный при применении»);
определить («токен», значение токена, полученное при применении »);
?>
2. Открыть файл класса Open51094.class.php
<? Php
Включите 'open.config.php';
класс Open51094 {
Частный $ appid;
частный токен $;
private $ return_uri;
private $ access_token;
private $ url = 'http://open.51094.com/user/auth.html';
function __construct () {
$ this-> appid = appid;
$ this-> token = token;
}
Функция меня ($ code) {
#$ this-> getAccessToken ();
$ params = массив (
'type' => 'get_user_info',
'code' => $ code,
'appid' => $ this-> appid,
'token' => $ this-> токен
);
вернуть $ this-> http ($ params);
}
частная функция 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 [] = "пользователь-агент: 51094PHP (open.51094.com)";
curl_setopt ($ ci, curlopt_httphader, $ headers);
curl_setopt ($ ci, curlopt_url, $ this-> url);
$ response = curl_exec ($ ci);
curl_close ($ ci);
$ json_r = array ();
if (! ement ($ response)) $ json_r = json_decode ($ response, true);
return $ json_r;
}
}
?>
3. вернуться на страницу Back.php
<? Php
Включите 'open51094.class.php';
$ open = new Open51094 ();
$ code = $ _get ['code'];
var_dump ($ open-> me ($ code));
?>
Java получает информационный код:
импортировать java.util.date;
импортировать java.util.uuid;
Импорт javax.servlet.http.httpservletrequest;
Импорт javax.servlet.http.httpservletresponse;
Импорт org.apache.struts2.servletactionContext;
Импорт org.json.jsonobject;
Импорт org.springframework.beans.factory.annotation.autowired;
Импорт org.springframework.context.annotation.scope;
Import org.springframework.sterotype.controller;
@Suppresswarnings ("serial")
@Controller
@Scope ("Прототип")
открытый класс пользователь thirdPartyAction {
// параметры, предоставленные сторонним платформами
частная статическая строка Appid = "15 *********";
частная статическая строка token = "14 *********";
public String ThirdLogin () {
Httpservletrequest request = servletactioncontext.getRequest ();
String code = checknull.check (request.getParameter ("code"));
System.out.println ("Сторонний вход возвращает результат:"+code);
if ("". equals (code) || null == code) {
System.out.println («Функция обратного вызова не выполнена»);
вернуть "Fail";
}еще{
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);
// результаты анализа
JsonObject jsonObj = new jsonObject (url);
// Получить объект значения указанного объекта ключа JSON
// parse incapsulated объект
вернуть "перенаправление";
}
}
}
Httprequet class:
Пакет wzh.http;
Импорт java.io.bufferedReader;
импортировать java.io.ioexception;
Импорт java.io.inputStreamReader;
Импорт java.io.printwriter;
импортировать java.net.url;
Импорт java.net.urlconnection;
импортировать java.util.list;
импортировать java.util.map;
открытый класс httprequest {/**
* Отправить запрос на указанный URL -адрес для метода получения
*
* @param url
* URL для отправки запроса
* @param param
* Параметры запроса, параметры запроса должны быть в форме name1 = value1 & name2 = value2.
* @return URL -результаты для удаленного ресурса, представленного
*/
Public Static String Sendget (String URL, String Param) {String result = "";
BufferedReader in = null;
пытаться {String urlnameString = url + "?" + param;
Url Realurl = новый URL (urlnameString);
// Откройте соединение с URL
UrlConnection Connection = Realurl.Openconnection ();
// Установить атрибуты общего запроса
connection.setrequestproperty ("Accept", "/*" ");Connection.SetRequestProperty («Connection», «Keep-Alive»);
Connection.SetRequestProperty («Пользовательский агент»,
"Mozilla/4.0 (совместимо; MSIE 6.0; Windows NT 5.1; SV1)");
// Создать фактическое соединение соединения. Connect ();
// Получить все поля заголовка ответа
Map <string, list <string >> map = connection.getheaderfields ();
// Итерация через все поля заголовка ответа
for (string key: map.keyset ()) {System.out.println (key + "->" + map.get (key));
}
// Определите входной поток BufferedReader для чтения ответа URL
in = new BufferedReader (новый InputStreamReader (
connection.getInputStream ()));
Строка;
while ((line = in.readline ())! = null) {результат += line;
}
} catch (Exception e) {System.out.println («Исключение произошло при отправке GET запрос!» + E);
e.printstacktrace ();
}
// Использование наконец -то блоки для закрытия входного потока
Окончательно { пытаться { if (in! = null) {in.close ();
}
} catch (Exception e2) {e2.printstacktrace ();
}
}
результат возврата;
}
/**
* Отправить запрос на метод публикации в указанный URL -адрес
*
* @param url
* URL для отправки запроса
* @param param
* Параметры запроса, параметры запроса должны быть в форме name1 = value1 & name2 = value2.
* @return ответа результаты представленного ресурса удаленного ресурса
*/
Public Static String SendPost (string url, строка параметров) {Printwriter Out = null;
BufferedReader in = null;
String result = "";
пытаться {Url Realurl = новый URL (URL);
// Откройте соединение с URL
UrlConnection conn = realurl.openconnection ();
// Установить атрибуты общего запроса
conn.setrequestproperty ("Accept", "*/*");conn.setrequestproperty («connection», «Keep-alive»);
conn.setrequestproperty («Пользовательский агент»,
"Mozilla/4.0 (совместимо; MSIE 6.0; Windows NT 5.1; SV1)");
// должны быть установлены следующие две строки для отправки запроса сообщения
conn.setDoOutput (true);
conn.setDoinput (true);
// Получить выходной поток, соответствующий объекту UrlConnection
out = new PrintWriter (conn.getOutputStream ());
// Отправить параметры запроса
out.print (param);
// буфер вывода промывки
out.flush ();
// Определите входной поток BufferedReader для чтения ответа URL
in = новый буферист (
новый inputStreamReader (conn.getInputStream ()));
Строка;
while ((line = in.readline ())! = null) {результат += line;
}
} catch (Exception e) {System.out.println («Исключение произошло при отправке запроса поста!» +E);
e.printstacktrace ();
}
// Использование наконец -то блоки для закрытия выходного потока и входного потока
Окончательно{ пытаться{ if (out! = null) {out.close ();
}
if (in! = null) {in.close ();
}
}
поймать (ioexception ex) {ex.printstacktrace ();
}
}
результат возврата;
}
}
Прикрепите пост написания и метода чтения:
// обмен на получение достойного метода, Post Method;
Общедоступная статическая строка
{
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 = 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", 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 ();
строка от = obj ["from"]. toString ();
info = name + "@" + img + "@" + sex + "@" + uniq + "@" + from;
}
вернуть информацию;
}
// Принять код, чтобы вернуть кодовую страницу
// Вход в интерфейс
String Code = запрос ["code"];
string [] arr = publicLogin.login (code) .split ('@');
if (arr.length == 5)
{
string unip = arr [3];
string sql = string.format ("select * from bs_user, где unip = '{0}'", Unip);
if (csa.dal.dbaccess.getrs (sql) .rows.count> 0)
{
if (csa.dal.dbaccess.getrs (sql) .rows [0] ["пароль"]. toString () == "" || csa.dal.dbaccess.getrs (sql) .rows [0] ["пароль"] == null)
{
string str = string.format ("location.href = 'myinformation.aspx? unip = {0}'", arr [3]);
Csa.hc.common.echojs (str);
}
еще
{
Bs_user user = new bs_user ();
user.unip = Unip;
Factory.getUserBllinStance (). LoginUnip (пользователь);
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'");
}
}
еще
{
// генерировать код члена
string date = datetime.now.toString ("ymdhmsssffff");
string usercode = getTreeNumRandomTop () + date + getTreeNumrandomend ();
string ip = httpcontext.current.request.userhostaddress;
string ins insql = string.format (@"Вставка в [bs_user] ([code], [username], [levelname], [realname], [sex], [pic], [Unip], [пароль], [телефон], [fxip])))
Values ('{0}', '{1}', '{2}', '{3}', '{4}', '{5}', '{6}', '{7}', '{8}', '{9}') ", usercode, arr [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), ip);
int row = csa.dal.dbaccess.executenonquery (insql);
if (ряд> 0)
{
Bs_user user = new bs_user ();
user.unip = arr [3];
Factory.getUserBllinStance (). LoginUnip (пользователь);
string str = string.format ("location.href = 'myinformation.aspx? unip = {0}'", arr [3]);
Csa.hc.common.echojs (str);
}
}
}