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放在ThinkPHP\Library\Org\ThinkSDK下

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.调试完成

thinkphp3.2开发网页实现第三方登录的更多相关文章

  1. android开发学习——facebook第三方登录,看了你不会后悔

    给APP用原生android进行facebook第三方登录. 我们做一件事情,首先得了解其原理,这样才不会迷茫,才知道自己做到什么程度了,心里才会有底. 所以,第一步,了解第三方登录的原理:下面贴一些 ...

  2. 【WEB开发】微信网页授权第三方登录接口(WEB登录)

    随着手机微信的崛起,腾讯发布的微信联登确实很诱惑pc端的伙伴们,现在就说说在pc端用微信扫一扫实现微信第三方登陆的方式.(具体代码U盘) 本文链接至:http://blog.csdn.net/hxke ...

  3. APP开发,微信第三方登录的介绍

    去年做了一阵APP相关的开发,经常遇到第三方登陆的需求,比如微信.微博.fb的第三方登陆等等,其实主要的流程都大同小异,这里就以微信为例来介绍,希望对大家有帮助. 微信开放平台(open.weixin ...

  4. iOS开发之微信第三方登录

    参考链接:https://blog.csdn.net/lichuandev/article/details/79878730 参考链接:https://www.jianshu.com/p/59e2ac ...

  5. PHP开发网站之微信登录、绑定

    )))刷新access_token()); ); ); curl_setopt($curlobj, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($curlo ...

  6. 使用 Abp.Zero 搭建第三方登录模块(一):原理篇

    ​第三方登录是基于用户在第三方平台上(如微信,QQ, 百度)已有的账号来快速完成系统的登录.注册-登录等功能. 微信的鉴权 以微信的鉴权为例: 假如你的网站有一个扫码登录的功能,会弹出一个由微信提供的 ...

  7. laravel5实现第三方登录(微信)

    背景 最近手头一个项目需要实现用户在网站的第三方登录(微信和微博),后端框架laravel5.4. 实现过程以微信网页版第三方登录,其他于此类似,在此不做重复. 准备工作 网站应用微信登录是基于OAu ...

  8. laravel5实现微信第三方登录功能

    背景 最近手头一个项目需要实现用户在网站的第三方登录(微信和微博),后端框架laravel5.4. 实现过程以微信网页版第三方登录,其他于此类似,在此不做重复. 准备工作 网站应用微信登录是基于OAu ...

  9. 使用 Abp.Zero 搭建第三方登录模块(三):网页端开发

    ​简短回顾一下网页端的流程,总的来说网页端的职责有三: 生成一个随机字符作为鉴权会话的临时Token, 生成一个小程序码, Token作为参数固化于小程序码当中 监控整个鉴权过程状态,一旦状态变为AU ...

随机推荐

  1. JUDE-UML工具软件介绍

    JUDE社区版(不考虑破-解). 现在Jude改名为Astah了.JUDE已停止发展,Astah是它的替代品.Jude有3个版: Professional版, Community版(免费),Share ...

  2. AngularJS [ 快速入门教程 ]

      前  序 S    N AngularJS是什么? 我想既然大家查找AngularJS就证明大家多多少少对AngularJS都会有了解. AngularJS就是,使用JavaScript编写的客户 ...

  3. day12<常见对象+>

    常见对象(Scanner的概述和方法介绍) 常见对象(Scanner获取数据出现的小问题及解决方案) 常见对象(String类的概述) 常见对象(String类的构造方法) 常见对象(String类的 ...

  4. codeigniter 去除index.php (nginx,apache) 通用方法

    .htaccess文件配置 1 <IfModule mod_rewrite.c> 2 RewriteEngine On 3 RewriteBase / 4 RewriteCond $1 ! ...

  5. 【个人笔记】《知了堂》前端mySql基础

    指定列之后添加: ALTER TABLE 表名 ADD 添加的新列名 INT AFTER 指定列之后 第一个位置: ALTER TABLE 表名 ADD 添加的新列名 varchar(20) AFTE ...

  6. 关于MySQL 事务,视图,索引,数据库备份,恢复

      /*创建数据库*/ CREATE DATABASE `mybank`;/*创建表*/USE mybank;CREATE TABLE `bank`(    `customerName` CHAR(1 ...

  7. React——组件的生命周期函数

    每一个组件都有一些生命周期函数. 当组件实例被创建并且会插入到DOM中,下面这些函数会被调用 constructor componentWillMount render componentDidMou ...

  8. Spring-Boot:Spring Cloud构建微服务架构

    概述: 从上一篇博客<Spring-boot:5分钟整合Dubbo构建分布式服务> 过度到Spring Cloud,我们将开始学习如何使用Spring Cloud 来搭建微服务.继续采用上 ...

  9. 【POJ】1067 取石子游戏(博弈论)

    Description 有两堆石子,数量任意,可以不同.游戏开始由两个人轮流取石子.游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多的石子:二是可以在两堆中同时取走相同数量的石子.最后 ...

  10. [SDOI2011]工作安排

    Description 你的公司接到了一批订单.订单要求你的公司提供n类产品,产品被编号为1~n,其中第i类产品共需要Ci件.公司共有m名员工,员工被编号为1~m员工能够制造的产品种类有所区别.一件产 ...