zoukankan      html  css  js  c++  java
  • thinkphp3.2开发网页实现第三方登录

    1.在要添加登录的html里添加登录按钮:

      <a href="{:U('Public/login/',array('type'=>'weixin'))}"><img src="__IMG__/weixin.png" alt="微信按钮" />   </a>(这里只写了微信,QQ,微博...只需修改type值与图片即可)

    2.登录方法:

      public function login($type=null) {

           empty($type) && $this->error('参数错误');

           //加载ThinkOauth类并实例化一个对象

           import("ORG.ThinkSDK.ThinkOauth");

           //跳转到授权页

           redirect($sns->getRequestCodeURL());

      }

      //授权回调地址

      public function callback(){

           (empty($type) || empty($code)) && $this->error('参数错误');

           //加载ThinkOauth类并实例化一个对象

           import("ORG.ThinkSDK.ThinkOauth");

           $sns=ThinkOauth::getInstance($type);

           //腾讯微博需传递参数

           $extend=null;

           if($type=='tencent'){

                $extend=array('openid'=>$this->_get('openid'),'openkey'=>$this->_get(''openkey));

           }

          //请妥善保管这里获取到的Token信息,方便以后API调用

          //调用方法,实例化SDK对象的时候直接作为构造函数的第二个参数传入

         //如: $qq = ThinkOauth::getInstance('qq', $token);

         $token = $sns->getAccessToken($code , $extend);

         //获取当前登录用户信息
         if(is_array($token)){
              $user_info = A('Type', 'Event')->$type($token);

              echo("<h1>恭喜!使用 {$type} 用户登录成功</h1><br>");

              echo("授权信息为:<br>");
              dump($token);
              echo("当前登录用户信息为:<br>");
              dump($user_info);
         }
    }

    3.下载sdk,把sdk文件夹和ThinkOauth.class.php放在ThinkPHPLibraryOrgThinkSDK下

    4.在config.php加:
      //微信登录
      'THINK_SDK_WEIXIN' => array(
           'APP_KEY' => '', //应用注册成功后分配的 APP ID
           'APP_SECRET' => '', //应用注册成功后分配的KEY
           'CALLBACK' => URL_CALLBACK . 'weixin',
      ),
      //腾讯QQ登录配置
      'THINK_SDK_QQ' => array(
           'APP_KEY' => '', //应用注册成功后分配的 APP ID
           'APP_SECRET' => '', //应用注册成功后分配的KEY
           'CALLBACK' => URL_CALLBACK . 'qq',
      ),

      //新浪微博配置
      'THINK_SDK_SINA' => array(
           'APP_KEY' => '', //应用注册成功后分配的 APP ID
           'APP_SECRET' => '', //应用注册成功后分配的KEY
           'CALLBACK' => URL_CALLBACK . 'sina',
      )


    5.调试完成

     

           

     

  • 相关阅读:
    Python:字母图形(蓝桥杯)
    Python:list列表中元素输出的几种情况
    Python:实现杨辉三角(蓝桥杯)
    Python:DataFrame转dict字典
    RedHat 5 Enterprise DHCP服务器的安装与配置(Windows验证)
    Python时间模块。
    django项目中form表单和ajax的文件上传功能。
    django项目后台权限管理功能。
    django项目中cxselect三级联动
    django项目用higcharts统计最近七天文章点击量。
  • 原文地址:https://www.cnblogs.com/fortitude526/p/6946893.html
Copyright © 2011-2022 走看看