系统登录模块设计之微信登录免费版

本文主要介绍登录模块结合微信登录免费版的开发。

首先准备一个微信测试号。地址可在本站的导航-微信API-测试号 找到。微信登录扫描,开启测试号。

记录你的appid, appsecret 。

在接口中找到 网页服务-网页账号-网页授权获取用户基本信息 ,修改授权回调域名为你的域名,比如 www.yf2017.top

修改网页授权域名

表设计-user

uid

用户ID

uname

用户名

upwd

密码

unionid

微信用户基本信息接口中的unionid

sql

create table tuser(
uid int auto_increment primary key comment ‘用户ID’,
uname varchar(30) not null comment ‘用户名’,
upwd varchar(200) not null comment ‘密码’,
unionid varchar(200) comment ‘用户微信unionid’

)comment ‘用户登录信息’;

表设计-user_nonce

noncestr

随机码

unionid

微信用户基本信息接口中的unionid

sql

create table tuser_nonce(
noncestr varchar(200) not null comment ‘随机码’,
unionid varchar(200) comment ‘用户微信unionid’

)comment ‘用户登录状态’;

流程设计

在登录页面 login.html 引入qrcode.js, 生成一个二维码指向后台一个页面wx.html ,该地址带一个唯一标识,比如timestamp+随机数。

用户点击微信登录时,生成标识码,传入 wx.html

$.post wx.html noncestr=xxxx

,并且每1s查询 user_nonce 根据 noncestr查询登录状态。

wx.html执行插入,在user_nonce表存入一条记录。

定时任务

根据appid, appsecret 每2小时刷新 access_token。

微信API调用

state传入 noncestr

用户授权后,微信传入code, state, 后台根据code获取用户信息,更新 user_nonce 表的记录。

登录页 login.html 查询到 user_nonce表的 unionid, 关联查询 user 表,查询到记录后设置session,

login.html跳转到管理页面 manage.html

到此,功能开发完成。

0%