1.登录页面
登录页面使用jquery.qrcode.min.js显示二维码, 二维码的内容不宜过长,所以内容是一个较短的链接,链接到自己的网站, 然后里面直接跳转到微信授权链接。(也可使用短链生成工具生成一个短链,直接在二维码搞定),后面跟一个参数param(后面的判断会用到,授权链接该值放在state中)。
然后,在页面有一个timerInterval,不断调用网站的一个地址user/qrlogin_check.html,参数是param.
function loingQr(){
$.post(‘user/qrlogin_check.html’,{‘state’:param},function(data){
var j=eval(‘(‘+data+’)’;
if(j.success==true)window.location.href=’home/main.html’;
}
}
setInterval(‘loginQr()’,1000);
2.处理授权后的跳转
redirecturi,即授权后跳转到的链接地址,填的当然是我们自己网站的地址。微信授权后,会将state原样传递过来,然后加上授权码微信的code. 根据code和accessToken, 访问微信API可获得用户的信息,比如微信企业号的userid(公众号是openid).
根据userid查找用户表是否存在该用户(用户账户和微信绑定,本文忽略)。 用户表结构:
username userpassword userid
如果存在,则保存数据到qrstate表。 qrstate表结构:
userid state
state存储的就是第一步的param.
3.判断用户是否登录
user/qrlogin_check.html实现的是判断用户是否登录的功能。 根据state查找qrstate中是否存在相应记录,如果存在,用userid查找用户表,然后将用户信息存储在session中,返回json串
{“successs”:true}