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. python基础之socket

    一.osi七层 完整的计算机系统由硬件,操作系统,软件组成. 互联网的核心就是由一堆协议组成,协议就是标准,如全世界通信的标准就是英语. 如果把计算机比作人,那么互联网协议就是计算机界的英语,所有计算 ...

  2. linux(5)--补充(管道| / 重定向> / xargs)/find 与xargs结合使用/vi,grep,sed,awk(支持正则表达式的工具程序)

    本节中正则表达式的工具程序 grep,sed和awk是重点,也是难点!!! 先补充一下一. 管道| / 重定向> / xargs 如:1. 管道和重定向的区别:具体可以见 http://www. ...

  3. Git的使用详解

    起步 关于版本控制 Git 简史 Git 基础 安装 Git 初次运行 Git 前的配置 获取帮助 小结 Git 基础 取得项目的 Git 仓库 记录每次更新到仓库 查看提交历史 撤消操作 远程仓库的 ...

  4. Java简单实用方法一

    整理以前的笔记,在学习Java时候,经常会用到一些方法.虽然简单但是经常使用.因此做成笔记,方便以后查阅 这篇博文先说明构造和使用这些方法. 1,判断String类型数据是否为空 String类型的数 ...

  5. 基于NIO和BIO的两种服务器对比

    基于BIO的服务器,服务端可能要同时保持几百万个HTTP连接,而这些连接并不是每时每刻都在传输数据,所以这种情况不适合使用BIO的服务器:而且需要保证共享资源的同步与安全,这个实现起来相对复杂.这时候 ...

  6. SVN学习笔记

    一.什么是SVN? Subversion(SVN) 是一个开源的版本控制系統, 也就是说 Subversion 管理着随时间改变的数据. 这些数据放置在一个中央资料档案库(repository) 中. ...

  7. 一、js的数据类型

    一.数据类型 ECMAScript中有5种简单数据类型:Undefined.Null.Boolean.Number和String.还有一种复杂数据类型--Object.ECMAScript不支持任何创 ...

  8. 【POJ】2348 Euclid's Game(扩欧)

    Description Two players, Stan and Ollie, play, starting with two natural numbers. Stan, the first pl ...

  9. python采用 多进程/多线程/协程 写爬虫以及性能对比,牛逼的分分钟就将一个网站爬下来!

    首先我们来了解下python中的进程,线程以及协程! 从计算机硬件角度: 计算机的核心是CPU,承担了所有的计算任务.一个CPU,在一个时间切片里只能运行一个程序. 从操作系统的角度: 进程和线程,都 ...

  10. ssh项目访问路径及url请求书写

    在ssh项目中配置好Struts后,一般可以采用两种方式进行后台请求: 1.html形式,包括a标签,form表单,ajax等.此时的访问链接必须写全路径,可以是相对路径,也可以是绝对路径 相对路径方 ...