欢迎来到258分享网,纯净的网络源码分享基地!

258资源分享网

全部作品
全部作品
网站源码
微信源码
素材特效
源码插件
视频教程
建站学院
热门搜索: 织梦  农业种植  农业  安全设置  官方
258资源分享 > 建站学院 > 微信开发 > 使用codeigniter写小程序 一 搭建微信登录框架

推荐下载

HTML5响应式自适应网咯设计

2020-05-12   浏览:738

高端HTML5响应式企业通用网

2020-05-06   浏览:518

html5响应式外贸网站英文版

2020-05-08   浏览:505

HTML5自适应律师工作室类网

2020-04-04   浏览:502

HTML5影视传媒文化公司类网

2020-05-12   浏览:496

使用codeigniter写小程序 一 搭建微信登录框架

发布时间:2020-12-18  

使用library 中的 微信登录 校验工具 (工具源码作者 小黑黑 ) 原本的脚手架是基于tp的小程序登录,把他稍微改进了用到CI中。 官方手册写的流程太复杂了,建议精简下,我看了一天的文档,其实东西不算很难,只是简单的东西复杂化了。 微信登录的流程大概是 小程序->业务服务器->传递最后的session3rd到微信服务器 同时把 session3rd json给 小程序,保存在客户端就可以。 用户进入小程序的时候,先 post session3rd给 业务服务器,查询缓存中是否还存在,存在就返回session3rd的内容,否则重新登录。

必要设置:CI memcached 参考 memcached配置

假设,你的网址是 https://www.abc.com/api 首先,把wafer目录放入 api中 其次,把wafer-session-server-master 目录放到 api目录中 注意,是整个目录放进去

linux主机的话,需要 在 系统/etc/新建 qcloud目录。 新建个文本文件粘贴如下代码:

{ "serverHost": "", "authServerUrl": "", "tunnelServerUrl": "https://ws.qcloud.com", "tunnelSignatureKey": "xxxxxx", "networkTimeout": 30000 } serverHost 你的业务服务器的域名,上面部署wafer SDK代码 authServerUrl 会话服务地址,登陆授权会用到。上面部署会话服务的代码 tunnelServerUrl 这个是信道服务器地址,不需要部署,直接使用腾讯提供的信道服务器地址https://ws.qcloud.com tunnelSignatureKey 修改成自己的签名秘钥,随便自己定义一个就行 将文件保存为sdk.config并上传到/etc/qcloud/sdk.config (需要在/etc/下面自己创建下qcloud这个目录)

具体请参考:自行部署小程序开发套件

进入CI wafer目录中,composer install,安装依赖文件。 使用框架: 微信官方demo wafer library库 源码作者小小黑 需要删除命名空间, WXLoginHelper 文件里面需要导入 require_once 其他的文件进来。

微信登录例子

Class UserLogin extends CI_Controller { function __construct() { parent::__construct(); $this->load->library(array('WXLoginHelper')); $this->load->model('General'); $this->load->driver('cache'); } function login() { /* code, rawData, signature, encryptData iv */ $postData = $this->input->post(array('code','rawData','signature','encryptedData','iv')); $code = $postData['code']; $rawData = $postData['rawData']; $signature = $postData['signature']; $encryptedData = $postData['encryptedData']; $iv = $postData['iv']; $test = new WXLoginHelper; $data = $test->checkLogin($code,$rawData,$signature,$encryptedData,$iv); $session = $this->cache->memcached->save($data['session3rd'], $data['openId'] . $data['sessionKey']); //检查user表是否存在改用户,如果存在,则则返回session,如果不存在,写入表再发回session $find = $this->General->query('user',array('openid'=>$data['openId'])); $find = $find ==null ? 0:$find[0]; if($find == 0) { $user_id = $this->General->insert('user',array('openId'=>$data['openId'],'nickName'=>$data['nickName'], 'gender'=>$data['gender'],'city'=>$data['city'],'language'=>$data['language'],'province'=>$data['province'],'country'=>$data['country'],'avatarUrl'=>$data['avatarUrl'])); } else{ $user_id = $find['id']; } if(isset($find['avatarUrl'] && $find['avatarUrl'] !== $data['avatarUrl']) { $this->General->update('user',array('id'=>$user_id),array('avatarUrl'=>$data['avatarUrl'])); //如果头像更改,则更新头像 } echo json_encode(array('status'=>0,'session3rd'=>$data['session3rd'],'user_id'=>$user_id)); } function checkLogin() { //如果客户端存在 session3rd,则post 到此接口,获取对应数据 $session3rd = $this->input->post('session3rd'); $data = $this->cache->memcached->get($session3rd); echo json_encode(array('status'=>0,'session3rd'=>$data)); } }  
字段 类型 空 默认 注释
uid   int(10)            
openId   varchar(20)         openid  
nickName   varchar(50)         密码  
gender   int(50)         性别  
language   varchar(50)         密码  
city   varchar(50)         城市  
province   varchar(50)         省份  
country   varchar(50)         国家  
avataUrl   varchar(50)         头像  
reg_time   int(11)     0   注册时间  

本文标签

:备案管家服务帮您把复杂流程变简单,解决您在进行网站备案过程中遇到的效率低下和成功率不高的问题。个人300/2个域名,企业500/5个域名,qq1650004.