纯js怎么实现wap 第三方登录

JavaScript018

纯js怎么实现wap 第三方登录,第1张

<script type=text/javascript>

在页面header中引入:<script type="text/javascript"

src="http://qzonestyle.gtimg.cn/qzone/openapi/qc_loader.js"

data-appid="appid" data-redirecturi="huidiaodizhi(带http)"

charset="utf-8"></script>

在body中加入下面信息:

//设置qq分享按钮

QC.Login(

{

btnId : "qqLoginBtn" //插入按钮的节点id

},

function(reqData, opts) {//登录成功

//根据返回数据,更换按钮显示状态方法

var dom = document.getElementById(opts['btnId']), _logoutTemplate = [

//头像

'<span><img src="{figureurl}" class="{size_key}"/></span>',

//昵称

'<span>{nickname}</span>',

//退出

'<span><a href="javascript:QC.Login.signOut()">退出</a></span>' ]

.join("")

dom

&&(dom.innerHTML = QC.String

.format(

_logoutTemplate,

{

nickname : QC.String

.escHTML(reqData.nickname), //做xss过滤

figureurl : reqData.figureurl

}))

},

function(opts) {//注销成功

alert("注销成功!!")

})

//调用api授权

QC.api("get_info", {

"oauth_consumer_key" : "appid" //这个可以不用传递

}).success(function(s) {

if (QC.Login.check()) {//检测是否成功登录,并弹出openid和accessToken

QC.Login.getMe(function(openId, accessToken) {

alert(openid+" "+accessToken)

})

}

})

</script>

<div class="lib_tiv shadow">

<h3 class="logo">QQ登录</h3>

</div>

第三方登陆回执的时候需要网址对吧,试试可不可以用假域名来测试。

首先服务器里绑定域名的时候不要用localhost之类的了,用一个不太常见的域名,比如“baiduishishabi.com”

之后修改“C:\Windows\System32\drivers\etc\hosts”

添加一行

127.0.0.1 baiduishishabi.com

如果要用ipv6就改成

::1 baiduishishabi.com

之后你就可以通过baiduishishabi.com访问你的本地站点了。

之后在第三方登录平台的回执网址里填写“http://baiduishishabi.com/xx.php”之类的地址。

如果第三方平台不要求你认证站点归属的话,应该就可以了。如果要求的话,那就没办法了。

// 这是从那singin方法中copy过来的,只要拼一下字符串,拼出url,用ajax提交就可以了

// 我copy过来的url是这个https://passport.csdn.net/ajax/accounthandler.ashx?t=log&u=xxxx&p=password&remember=0&f=http%3A%2F%2Fzhidao.baidu.com%2Fquestion%2F616465234235174812.html%3Fpush%3Dcore%26group%3D1%26qbl%3Dpush_question_0%26rprecommand%3Dc&rand=0.5584398012142628

var data = "u=" + csdn.val2(u)

        + "&p=" + csdn.val2(p)

        + "&remember=" + ($("#chkRemember").attr("checked") ? "1" : "0")

        + "&f=" + csdn.val2("f")

        //+ "&enc=1"

        + "&rand=" + Math.random()

    csdn.doing = true

    csdn.loading($("#aLogin")[0])

    $.ajax({

        url: csdn.acc_handler + "?t=log&" + data

, success: signin_back

, error: function (xhr) {

    signin_back(xhr.response)

}

    })