• 站点接入QQ登录


    首先引入授权js文件

    <script type="text/javascript" src="http://qzonestyle.gtimg.cn/qzone/openapi/qc_loader.js" data-appid="101140406" data-redirecturi="http://127.0.0.1" charset="utf-8"></script>

    然后接入QQ登录


     
    第一种使用系统自带button登录,可是这样会弹出新窗体,不喜欢  
     //调用QC.Login方法,指定btnId參数将button绑定在容器节点中
       QC.Login({
           //btnId:插入button的节点id,必选
           btnId:"qqLoginBtn",
           //用户须要确认的scope授权项,可选,默认all
           scope:"all",
           //button尺寸,可用值[A_XL| A_L| A_M| A_S|  B_M| B_S| C_S],可选,默认B_S
           size: "B_M"
       }, function(reqData, opts){//登录成功
            console.log(reqData, opts);
           //依据返回数据,更换button显示状态方法
           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('QQ登录 注销成功');
       });
    
    另外一种,使用自己定义button<a>标签链接过去,然后成功后调用这个地址,a标签的href能够參考第一种window.location
    QC.api("get_user_info", {})
      //指定接口訪问成功的接收函数,s为成功返回Response对象
      .success(function(s){
        console.log(s);
        //成功回调,通过s.data获取OpenAPI的返回数据
        alert("获取用户信息成功!当前用户昵称为:"+s.data.nickname);
      })
      //指定接口訪问失败的接收函数,f为失败返回Response对象
      .error(function(f){
        //失败回调
        alert("获取用户信息失败!");
      })
      //指定接口完毕请求后的接收函数,c为完毕请求返回Response对象
      .complete(function(c){
        //完毕请求回调
        alert("获取用户信息完毕!");
      });
    
    //检查是否登录
       if(QC.Login.check()){//假设已登录
            QC.Login.getMe(function(openId, accessToken){
                alert(["当前登录用户的", "openId为:"+openId, "accessToken为:"+accessToken].join("
    "));
            });
            //这里能够调用自己的保存接口
            //...
        }
    


  • 相关阅读:
    c#大圣之路笔记——c# 页面加载数据过长等待显示框
    Python(五)
    Python(四)
    Python(三)
    python(二)数据类型与变量
    初识Python
    Linux初识(九)
    Linux初识(八)正则表达式
    Linux基础初识(七)
    Linux基础初识(六)
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/4266167.html
Copyright © 2020-2023  润新知