小黑小波比.nodejs网站接入QQ登录方法

来源:互联网 发布:淘宝店如何提高销量 编辑:程序博客网 时间:2024/05/18 10:56

在s910/Client/Scripts/GUI/~.js中

查看调用JS SDK文档说明

1.引用js sdk的javascript文件之前

 首先需要申请接入QQ登录,并成功获取到appid和appkey。


var OpenAuth = function() {//定义这个变量函数,传送到页面中,例如:<script language="javascript" type="text/javascript"></script>var tag = document.createElement("script");tag.setAttribute('language', 'javascript');tag.setAttribute('type', 'text/javascript');tag.setAttribute('src', 'http://qzonestyle.gtimg.cn/qzone/openapi/qc_loader.js');tag.setAttribute('data-appid', '101150264');tag.setAttribute('data-redirecturi', 'http://127.0.0.1:8080/')document.getElementsByTagName('head')[0].appendChild(tag);// var result;// var _ok = false;// tag.onload = function() {// _ok = true;// result && result();// };// return function(fn){// if(_ok)return fn();// result = fn;// };};_(document).ready(function(){OpenAuth();//调用函数!})

在~.js文件中事件event中的login方法中

login: function(sender) {var loginid = app.genID();var data = {};data.user = auth.user;data.cid = loginid;//var k = OpenAuth();app.tpl("Main->login", function(t) {app.gui.page(_('#main'), t(data, {}));var loginEvent = {msg: function(txt) {app.tpl("Main->login.alert", function(at, parent) {parent.html(at({info: txt}, {}));}, loginEvent.parent);},signin: function() {var vals = app.gui.vals(loginEvent.parent);if (!vals.user) {return loginEvent.msg("user name is not null");} else if (!vals.pwd) {return loginEvent.msg("password name is not null");} else {var hash = CryptoJS.HmacSHA256(vals.pwd, vals.user);var pwd = hash.toString(CryptoJS.enc.Base64);_.ajax({type: "POST",url: "api/sign/auth/login",data: {user: vals.user,pwd: pwd,yb: auth.yb},dataType: "json",success: function(r) {if (r.status) {return loginEvent.msg(r.status.description || r.status.code);} else if (!r.auth) {return loginEvent.msg("用户授权失败,请检查你的用户名或密码!");} else {auth.title = r.title;auth.sign = auth._sign;auth.level = r.level;auth.save();app.gui.refresh("~");}}});}}};<pre name="code" class="javascript">//选择QQidapp.gui.on(_('#' + loginid), loginEvent);//k(function() {QC.Login({btnId: loginid + "qq" //插入按钮的节点id});//});

在s910/Client/Views/Main/login.tpl

<span style="white-space:pre"></span><div class="login-social-link"><p style="float:left; margin-top:0px;" on="abc">使用其他方式登陆:</p><a href="index.html" class="qq" id="${cid}qq"><!--在这里添加<a></a> 注意id--></a><a href="index.html" class="weibo"><img id="weibo_img" class="img " style="display:block; margin:auto; height:50px" src="../../Context/images/weibo.jpg" /></a></div>

测试:
打开登录界面,点击其它方式登录的 "qq登录".成功跳转新窗口.测试成功!


0 0