关于PHP实现扫码登录

原创 2017年03月04日 11:15:20
  1. 首先,我来讲题下我做这个功能的原因。

    因为公司接了某企业的一个单子,微信开放平台本来是提供第三方登录的,但是他们并没有给我们的域名授权,然而,授权审核需要7天。于是,我决定采用微信端公众平台的授权获取用户信息后实现PC端登录。

  2. 登录的原理

    登录的原理无非就是session或者cookie,然而,博主这里用的是session,session是连接客户端和服务器的重要部分。但是,不同的客户端连接服务器会产生不同的session,那么实现微信登录后同步到浏览器的关键就是,同步这两个客户端的session。

  3. 关键:如何使两个客户端的session同步

    其实服务器在于客户端进行通信的时候产生的每一个session都是带有一个唯一的id的,至于这个id(ps:博主是php的),我们可以用session_id()得到。

既然既然我们可以得到session_id了,接下来就是实现session同步了。关键点还是这个函数,session_id(),           这个函数不仅可以或得到本次session的id,还能让当前的session成为一个已知的sessionid的session。这里有点           绕,大家要好好理解。

在我实验下来,大概是这么用的。例如,我在PC端获取到了PC端的sessionid,假设为1,我用微信鉴权的路            径生成一个二维码,其中,将这个PC端的sessionid作为参数,放入回调地址中。让微信在扫码鉴权后,回调到            我制定的控制器,去同步session内容。

这里模仿微信鉴权后获取到了用户的信息:

// 首先我判断这次回调是否带上了sessionid参数

if($sessionid = $_GET[‘sessionid’])

// 将sessionid存入session,避免get的过程中丢失

$_SESSION[‘session_id’] = $sessionid;

// 在获取用户微信信息后加入以下代码,如果鉴权获得微信信息,请自行百度

if($sessionid = $_SESSION[“session_id”]){
unset($_SESSION[“session_id”]);
$session = $_SESSION;

//  同步PC和微信端的session
session_id($sessionid);

// 将获取到的微信信息存入这个共同session中
$_SESSION = $session;

// 启用这个session,关键,一定要使用这步
session_start();

//  这一步本来是博主用来重置微信端的sessionid用的,但是博主发现使用了这个函数之后,之前的session就无效了。
//  session_regenerate_id();
}

4.到此,PC端和微信端的session就同步了,可以在用户打开扫码的同时开启一个ajax,定时访问某个接口,判断session值是否改变,如果改变就跳转到指定页面,这样就实现了微信扫码登录。

PS:刚想出这个方法,怕自己忘记就写了,不一定是最安全,最好的,希望大家有不会的可以借鉴一下我的思路。

版权声明:本文为博主原创文章,转载请注明出处。

PHP微信第三方扫码登录技术问题

PHP微信第三方扫码登录技术问题

php/socket.io实现扫码登录

扫码登录demo 前端h5+ios 后端php+nodeserver 使用长链接来完成扫码登录 附上核心代码demo...

Android 实现扫码登录

如今通过扫描二维码然后跳转登录的情形已经很普遍了,这里就来模拟实现一个简单的跳转登录功能模拟登陆的思路:1.建立一张数据表,包含三个字段,分别为主键id,用户名username,随机数randnumb...

让APP实现扫码登录,干货来了

创建扫码库 id 扫码ID username 扫码人 token 扫码人token sid 扫码唯一标识  32位 isOk 是否已经扫码 网页上二维码显示内容 {"type":"log...

微信开放平台开发——网页微信扫码登录(OAuth2.0)

1、OAuth2.0   OAuth(开放授权)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用。   ...

微信小程序/应用号开发IDE破解版(免APPID)下载及教程

微信应用号/小程序开发IDE 注意:先下0.7版用于登录,再下0.9版用于开发,目前只能本地编译,不能上传 下载声明 相关代码纯属技术研究与爱好,请在学习使用后删除 相关下载资源均来自...

PHP实现微信开放平台扫码登录源码下载

PHP实现微信开放平台扫码登录源码下载

PHP实现微信开放平台扫码登录源码下载

PHP实现微信开放平台扫码登录源码下载 ,刚做的微信开发平台登陆,搞了好久 不多说,演示下载:http://www.erdangjiade.com/php/1034.html 1、首先到微信开...

PHP微信第三方扫码登录技术问题

转自 http://blog.csdn.net/qq_16453867/article/details/50786541 写这篇文章是为了记录自己在写微信第三方网页扫码登录遇到的相...

PHP微信公众号扫码模拟登录功能

PHP微信公众号扫码模拟登录功能
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于PHP实现扫码登录
举报原因:
原因补充:

(最多只允许输入30个字)