亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

asp:第三平臺登陸

2019-11-14 14:28:56
字體:
來源:轉載
供稿:網友

 第三平臺登陸接口申請網址: 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日之后注冊用戶請使用方式二

方案一(已棄用)

回調方式

GET 

回調url

申請應用時填寫的登錄成功回調地址

回調格式

http://url/user/hezuo.html?param=%7B%22name%22%3A%22oh%21no%22%2C%22img%22%3A%22http%3A%5C%2F%5C%2Fq.qlogo.cn%5C%2FQQapp%5C%2F100478927%5C%2F863A85B9B176E2408E05DF05D46FDB3F%5C%2F100%22%2C%22sex%22%3A0%2C%22uniq%22%3A%22qqO8HdWKMKpVI%22%2C%22from%22%3A%22qq%22%7D

參數

取得param參數內容后先做url解碼,再進行json解碼即可得到如下內容:

 

name

登錄獲取的用戶名稱

img

頭像地址

sex

性別

uniq

第三方獲得的唯一碼

from

登錄來源  如 qq、weibo、renren等

 

方案二

可參考:http://test.open.51094.com/index.php

回調方式

GET

回調url

申請應用時填寫的登錄成功回調地址

回調格式

http://url/user/hezuo.html?code=code

參數

取得code參數內容后先再使用post方式請求:

url: http://open.51094.com/user/auth.html

POST參數:

type:get_user_info

code:傳回的code值

appid:申請到的appid值 ( 網頁上點擊應用名稱獲取 )

    token:申請到的token值 ( 網頁上點擊應用名稱獲取 )

信息會以json串的形式返回,得到信息后json_decode( $str,true )后得到以下內容:(獲取方式可參考附錄)

name

登錄獲取的用戶名稱

img

頭像地址

sex

性別

uniq

第三方獲得的唯一碼

from

登錄來源  如 qq、weibo、renren等

 

 

此插件為免費插件,可用于商業用途,請在使用時標注開發人。

 

 

使用注意點:

1、引用js頁面域名與申請時的回調地址域名一定要相同。

2、引用的js后頁面上一定要加 id='hzy_fast_login' 的標簽。

3、申請的回調url中不允許出現?

 

 

錯誤代碼集:

錯誤碼

問題

10001

用戶appid錯誤

10002

所傳token與appid不匹配

10003

請求域名與注冊域名不匹配(有回調地址決定注冊域名)

time out

登錄超時,需要重新登錄

 

附錄:

Php獲取信息代碼:    源碼http://test.open.51094.com/index.php

1、配置文件  open.config.php

內容:

<?php

/**

 *@ 注冊地址 http://open.51094.com

 *@ QQ交流群:373703921

 *@ 博客地址:http://www.51094.com

 *@ 測試地址:http://open.51094.com/user/login.html

 *

 *@ author: hzy@51094.com

 *

 **/

       define( 'APPID', '申請時得到的appid');

       define( 'TOKEN', '申請時得到的token值');

?>

2、open類文件 open51094.class.php

<?php

include 'open.config.php';

class open51094{

       PRivate $appid;

       private $token;      

       private $return_uri;

       private $access_token;

       private $url = 'http://open.51094.com/user/auth.html';

 

       function __construct(){

              $this->appid = APPID;

              $this->token = TOKEN;

       }

 

       function me( $code ){

              #$this->getAccessToken();

              $params=array(

                            'type'=>'get_user_info',

                            'code'=>$code,

                            'appid'=>$this->appid,

                            'token'=>$this->token

                     );

              return $this->http( $params );

       }

       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(!empty( $response ))$json_r=json_decode($response, true);

              return $json_r;

       }

}

?>

3、返回頁面 back.php

<?php

       include 'open51094.class.php';

 

       $open = new open51094();

       $code = $_GET['code'];

       var_dump( $open->me($code) );

?>

 

JAVA獲取信息代碼:

import java.util.Date;

import java.util.UUID;

 

import javax.servlet.http.HttpServletRequest;

import 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")

@Controller

@Scope("prototype")

public class UserthirdpartyAction{

       //第三方平臺提供的參數

       private static String appid="15********";

       private static String 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("回調函數沒有執行");

                     return "fail";

              }else{           

                      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 key對象的value對象

                    //解析封裝對象

                    

                     return "Redirect";

              }

             

       }

      

}

 

 

HttpRequet 類:

package wzh.Http;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.URL;
import java.net.URLConnection;
import java.util.List;
import java.util.Map;
public class HttpRequest {
    /**
     * 向指定URL發送GET方法的請求
     * 
     * @param url
     *            發送請求的URL
     * @param param
     *            請求參數,請求參數應該是 name1=value1&name2=value2 的形式。
     * @return URL 所代表遠程資源的響應結果
     */
    public static String sendGet(String url, String param) {
        String result = "";
        BufferedReader in = null;
        try {
            String urlNameString = url + "?" + param;
            URL realUrl = new URL(urlNameString);
            // 打開和URL之間的連接
            URLConnection connection = realUrl.openConnection();
            // 設置通用的請求屬性
            connection.setRequestProperty("accept", "*/*");
            connection.setRequestProperty("connection", "Keep-Alive");
            connection.setRequestProperty("user-agent",
                    "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
            // 建立實際的連接            connection.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(new InputStreamReader(
                    connection.getInputStream()));
            String line;
            while ((line = in.readLine()) != null) {
                result += line;
            }
        } catch (Exception e) {
            System.out.println("發送GET請求出現異常!" + e);
            e.printStackTrace();
        }
        // 使用finally塊來關閉輸入流
        finally {
            try {
                if (in != null) {
                    in.close();
                }
            } catch (Exception e2) {
                e2.printStackTrace();
            }
        }
        return result;
    }
    /**
     * 向指定 URL 發送POST方法的請求
     * 
     * @param url
     *            發送請求的 URL
     * @param param
     *            請求參數,請求參數應該是 name1=value1&name2=value2 的形式。
     * @return 所代表遠程資源的響應結果
     */
    public static String sendPost(String url, String param) {
        PrintWriter out = null;
        BufferedReader in = null;
        String result = "";
        try {
            URL realUrl = new URL(url);
            // 打開和URL之間的連接
            URLConnection conn = realUrl.openConnection();
            // 設置通用的請求屬性
            conn.setRequestProperty("accept", "*/*");
            conn.setRequestProperty("connection", "Keep-Alive");
            conn.setRequestProperty("user-agent",
                    "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
            // 發送POST請求必須設置如下兩行
            conn.setDoOutput(true);
            conn.setDoInput(true);
            // 獲取URLConnection對象對應的輸出流
            out = new PrintWriter(conn.getOutputStream());
            // 發送請求參數
            out.print(param);
            // flush輸出流的緩沖
            out.flush();
            // 定義BufferedReader輸入流來讀取URL的響應
            in = new BufferedReader(
                    new InputStreamReader(conn.getInputStream()));
            String line;
            while ((line = in.readLine()) != null) {
                result += line;
            }
        } catch (Exception e) {
            System.out.println("發送 POST 請求出現異常!"+e);
            e.printStackTrace();
        }
        //使用finally塊來關閉輸出流、輸入流
        finally{
            try{
                if(out!=null){
                    out.close();
                }
                if(in!=null){
                    in.close();
                }
            }
            catch(IOException ex){
                ex.printStackTrace();
            }
        }
        return result;
    }    
}

 

 

附上post寫法和讀取方法:

//交換獲得值得方法,post方法;

public static 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 = 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();
string from = obj["from"].ToString();
info = name + "@" + img + "@" + sex + "@" + uniq + "@" + from;
}
return info;
}

 

//接受返回code頁面代碼

//接口登陸
string code = Request["code"];
string[] arr = PublicLogin.Login(code).Split('@');
if (arr.Length == 5)
{
string unip = arr[3];
string sql = string.Format("select * from bs_user where unip = '{0}'", unip);
if (CSA.DAL.DBAccess.getRS(sql).Rows.Count > 0)
{
if (CSA.DAL.DBAccess.getRS(sql).Rows[0]["PassWord"].ToString() == "" || CSA.DAL.DBAccess.getRS(sql).Rows[0]["Password"] == null)
{
string str = string.Format("location.href ='MyInformation.aspx?unip={0}'", arr[3]);
CSA.HC.Common.EchoJS(str);
}
else
{
Bs_User user = new Bs_User();
user.Unip = unip;
Factory.getUserBllInstance().loginUnip(user);
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'");
}
}
else
{
//生成會員code
string date = DateTime.Now.ToString("ymdHmssffff");
string usercode = getTreeNumRandomTop() + date + getTreeNumRandomEnd();
string ip = HttpContext.Current.Request.UserHostAddress;
string inssql = string.Format(@"INSERT INTO [Bs_User]([Code],[UserName],[levelName],[RealName],[Sex],[Pic],[unip],[Password],[Phone],[fxip])
VALUES('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}')", usercode, arr[0].Trim('"'), "fkt_" + 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(inssql);
if (row > 0)
{
Bs_User user = new Bs_User();
user.Unip = arr[3];
Factory.getUserBllInstance().loginUnip(user);

string str = string.Format("location.href ='MyInformation.aspx?unip={0}'", arr[3]);
CSA.HC.Common.EchoJS(str);
}
}
}

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产91在线播放精品91| 国产九九精品视频| 国产精品九九九| 久久综合色影院| 91夜夜揉人人捏人人添红杏| 亚洲国产精品久久久久秋霞不卡| 国产精品久久久| 国语自产精品视频在线看| 国产视频精品va久久久久久| 久久久亚洲影院你懂的| 精品亚洲一区二区三区四区五区| 日韩高清免费在线| 国产美女精品视频| 欧美肥老太性生活视频| 欧美在线影院在线视频| 成人天堂噜噜噜| 国产欧美一区二区三区四区| 色老头一区二区三区| 国产一区二区三区四区福利| 青青久久aⅴ北条麻妃| 欧美电影免费观看网站| 国产精品国产三级国产专播精品人| 国内精品久久久久久久| 色偷偷av一区二区三区乱| 国产极品jizzhd欧美| 亚洲电影免费在线观看| 国产精品高潮呻吟久久av野狼| 国产精品欧美一区二区| 中文字幕欧美精品日韩中文字幕| 亚洲图中文字幕| 55夜色66夜色国产精品视频| 夜夜嗨av一区二区三区四区| 38少妇精品导航| 成人免费网站在线看| 欧洲精品在线视频| 青青草精品毛片| 日韩av有码在线| 精品在线小视频| 成人天堂噜噜噜| 日本精品久久久久影院| 亚洲成人亚洲激情| 在线看片第一页欧美| 成人网在线观看| 中文字幕在线国产精品| 国产丝袜一区二区三区| 亚洲男女自偷自拍图片另类| 国产精品夜间视频香蕉| 欧美激情按摩在线| 久久久久久国产精品美女| 91av网站在线播放| 欧美日韩ab片| 欧美xxxx做受欧美| 欧美成年人网站| 欧美日韩午夜剧场| 欧美日韩福利电影| 久久在线观看视频| 国产精品第8页| 国产免费一区二区三区在线观看| 日本a级片电影一区二区| 26uuu久久噜噜噜噜| 日韩美女激情视频| 亚洲精品99久久久久中文字幕| 日本国产高清不卡| 亚洲欧美中文字幕| 欧美精品videosex性欧美| 在线播放国产一区中文字幕剧情欧美| 亚洲男人天堂网| 疯狂做受xxxx欧美肥白少妇| 国产成人91久久精品| 亚洲欧美在线一区二区| 91精品国产91久久久久久久久| 国产日韩精品在线| 伊人亚洲福利一区二区三区| 亚洲国产精品成人精品| 亚洲网在线观看| 久久久久成人精品| 亚洲视频在线看| 亚洲欧美另类中文字幕| 国产精品网址在线| 欧美成人久久久| 精品亚洲精品福利线在观看| 欧美色道久久88综合亚洲精品| 永久免费毛片在线播放不卡| 57pao国产精品一区| 91精品国产色综合久久不卡98| 亚州精品天堂中文字幕| 欧美大胆在线视频| 亚洲电影中文字幕| 亚洲理论片在线观看| 国产美女高潮久久白浆| 欧美日韩在线免费观看| 精品久久香蕉国产线看观看亚洲| 欧美国产欧美亚洲国产日韩mv天天看完整| 亚洲嫩模很污视频| 国模精品视频一区二区三区| 亚洲欧美成人一区二区在线电影| 97欧美精品一区二区三区| 日韩av在线高清| 久久久久久com| 欧美性xxxx极品hd欧美风情| 亚洲欧洲在线播放| 亚洲女人初尝黑人巨大| 精品福利一区二区| 午夜精品久久久久久久久久久久久| 国产精品一区二区三| 亚洲免费av网址| 日韩精品在线私人| 日韩av电影院| 亚洲午夜国产成人av电影男同| 日韩福利伦理影院免费| 中文字幕日韩精品在线观看| 日韩美女在线看| 日韩av男人的天堂| 精品亚洲男同gayvideo网站| 成人午夜激情网| 国产精品香蕉av| 久久影视电视剧免费网站清宫辞电视| 欧美性感美女h网站在线观看免费| 日韩欧美亚洲国产一区| 欲色天天网综合久久| 91亚洲国产成人精品性色| 国产日韩中文在线| 成人黄色激情网| 色樱桃影院亚洲精品影院| www.色综合| 午夜精品一区二区三区在线播放| 日韩在线免费视频| 国产mv免费观看入口亚洲| 在线播放日韩欧美| 亚洲精品国产精品国自产在线| 麻豆乱码国产一区二区三区| 色悠悠久久88| 亚洲欧洲av一区二区| 91中文字幕在线观看| 最新国产成人av网站网址麻豆| 久久久之久亚州精品露出| 亚洲人成网7777777国产| 欧美一区二区三区艳史| 精品动漫一区二区三区| 亚洲精品98久久久久久中文字幕| 欧美极品在线视频| 亚洲美女在线观看| 国产日韩在线亚洲字幕中文| 亚洲午夜性刺激影院| 国产玖玖精品视频| 精品国产乱码久久久久久虫虫漫画| 亚洲人成伊人成综合网久久久| 亚洲欧洲自拍偷拍| 青草青草久热精品视频在线观看| 在线播放亚洲激情| 欧美又大粗又爽又黄大片视频| 欧美伦理91i| 国产精品热视频| 欧美国产中文字幕| 欧美男插女视频| 国产成人精品电影| 九九热99久久久国产盗摄| 精品免费在线观看| 欧美亚洲国产视频| 国产一区二区三区网站| 国产精品免费久久久久影院| 国产成人精品一区| 成人情趣片在线观看免费| 亚洲精品自拍第一页|