PHP+laravel 微信开发工具授权登录详解
微信小程序登录流程时序
废话不多说,直接上代码:
html 代码
<button open-type="getUserInfo" bindtap="login">授权登录</button>
JS 代码
login(){//通过wx.getUserProfile弹出授权框wx.getUserProfile({desc: 'desc',success:res=>{//通过wx.login获取codewx.login({success:d=>{let code = d.code//发送ajax请求,并将code携带过去wx.request({url: 'http://zy.com/index.php/api/wxLogin',method:"POST",data:{code},success:e=>{if(e.data.status==200){wx.showToast({title: e.data.message,})}else{wx.showToast({title: e.data.message,icon:"error"})}}})}})},fail:res=>{wx.showToast({title: "授权失败",})}})}
PHP 控制器代码 (我用的laravel框架)
/*** 微信登录* @param string $code 微信提供 凭证,通过 wx.login 接口获得临时登录凭证 code* @param string $appid 微信提供 APPID* @param string $key 微信提供 SECRET* @param string $url 微信提供 请求地址 method GET* @return int 状态码*/public function wxLogin(Request $request){try {$code = $request->post('code');$appid = config('wx.appid');$key = config('wx.key');$url = 'https://api.weixin.qq.com/sns/jscode2session?appid='.$appid.'&secret='.$key.'&js_code='.$code.'&grant_type=authorization_code';$wx = file_get_contents($url,true);$wx = json_decode($wx,true);$openid = $wx['openid'];$session_key = $wx['session_key'];$where['openid'] = $openid;$find = Wwws::getOne($where);if($find){$find->session_key = $session_key;$result = $find->save();if($result){//生成token$id = $find['id'];$token = createToken($id);// getUserId($token) 解密方法,解密成功返回$id,解密失败返回null 可去中间件判断,这里就不详细写了return showMsg(200,"登录成功",$token);}return showMsg(400,"登录失败");}$data = ['session_key'=>$session_key,'openid'=>$openid];$result = Wwws::add($data);if($result){$token = createToken($result);// getUserId($token) 解密方法,解密成功返回$id,解密失败返回null 可去中间件判断,这里就不详细写了return showMsg(200,"登录成功",$token);}return showMsg(400,"登录失败");}catch (\Exception $e){return showMsg(500,"服务器内部错误");}}
PHP 模型层代码 (laravel框架)
//获取单条public static function getOne($where){return self::where($where)->first();} //添加数据 insertGetId 添加成功后返回自增IDpublic static function add($data){return self::insertGetId($data);}
createToken/getUserId生成token和解密token ,完成用户认证。如果不需要的话可以将它们删掉。需要的移步:
laravel框架使用JWT生成token验证_lyan_6的博客-CSDN博客
并且createToken/getUserId/showMsg等法法都是封装的公共的方法,不会的可移步
laravel实现自定义公共函数_lyan_6的博客-CSDN博客
PHP+laravel 微信开发工具授权登录详解相关推荐
- 微信小程序之 微信开发工具使用教程详解
如果你要开发自己的微信小程序或者小游戏,微信开发者工具是必不可少的,因为有些微信封装的方法只有微信开发者工具上才能使用,还有一个重要的原因就是,我们提交我们的代码审核必须通过该工具来提交,所有要做微信 ...
- 微信小程序授权登录详解
文章目录 流程 wx.login() auth.code2Session 实战 前端代码 后端代码 流程 说明 调用 wx.login() 获取 临时登录凭证code ,并回传到开发者服务器. ...
- 开发工具IDEA使用详解
开发工具IDEA使用详解 1. IntelliJ IDEA的下载与安装 2. IDEA配置jdk开发环境 3. 隐藏.idea文件夹和.iml等文件 4. IDEA创建Java工程 5. 修改编写代码 ...
- 微信web开发工具-授权登录
释: 我是订阅号,申请的微信开发测试账号,操作授权登录 1. 下载web开发工具 2. 在公众号列表中, 开发者工具->web开发工具-> 绑定开发者账号 ->输入你的微信号(微 ...
- php 微信开发 网页授权登录,微信开发网页授权登录——2018年6月2日
微信网页授权登录用户同意授权,获取code 通过code,获取网页的access_token 拉取用户信息(scope 为snsapi_userinfo) application\index\cont ...
- ARM开发工具软件命令详解---嵌入式回归第三篇
先从bootloader开始,因为暂时目前这些都会是裸机程序相关! 本人这里是VMwarm10.0上安装的红帽linux虚拟机.从下面的截图中可以看出 裸机开发流程: 这里先做第三步(第一步第二步已提 ...
- Spring boot 项目(十三)——实现微信公众号授权登录获取用户信息
引言 微信公众号开发中,必不可少的一环:公众号授权登录.获取微信用户信息 前期准备 内网渗透=>生成本地指定端口映射的外网域名 链接:内网渗透工具natapp使用详解 域名生成之后修改yml文件 ...
- 基于Spring Boo微信公众号授权登录获取用户信息(附带完整源码)
简介 微信公众号开发中,必不少可少的一环:公众号授权登录.获取微信用户信息. 本地完整运行环境准备 内网渗透=>生成本地指定端口映射的外网域名 传送门:内网渗透工具Natapp使用详解 域名生成 ...
- SpringBoot微信小程序授权登录
SpringBoot微信小程序授权登录 一.appId 1.1.自己是管理者:微信公众平台,申请或登录自己的微信小程序,在开发者管理中即可看到 2.2.自己是开发者:让管理员将自己加入到小程序开发者管 ...
最新文章
- 在CentOS 6.9 x86_64上搭建全功能的OpenResty 1.13.6.1笔记
- 用C#调用Windows API向指定窗口发送按键消息
- Nginx 的 default_server 指令
- 数据查询分页 获取总数时间太长_干货:SQL Server 查询语句
- MATLAB 无约束一维极值问题
- arm linux gcc 编译,Linux arm-linux-gcc交叉编译环境配置
- 从ACL2021看对比学习在NLP中的应用
- kernal tch 下载 天正_tch kernal.arx
- 20个最佳WordPress SEO插件
- Double类型比较大小
- AngularJs+bootstrap搭载前台框架——基础页面
- Mac下搭建react及bable
- 解决被卡巴斯基提示说KEY被列为黑名单
- 软考架构设计师脑图总结
- adb安装apk python小工具
- DBCO-PALA-b-PEG DBCO-聚硫辛酸-聚乙二醇
- 手机盾验证失败是什么意思_手机盾是什么意思
- 创业者的噩梦 -商业竞争究竟有多残酷和黑暗
- 未婚同居能白头偕老吗
- 如何更新google浏览器
热门文章
- bert中文文本情感分类 微博评论挖掘之Bert实战应用案例-文本情感分类
- 上海人才引进居住证转户口的经验(收藏)
- JavaWeb、Tomcat、jquery:Failed to load resource: the server responded with a status of 500 ()
- EIZO船舶触摸屏维修T1502-B
- 疾风计划:离散数学丨第一章_命题逻辑
- 托福高频真词List11 // 附托福TPO阅读真题
- MAC 使用内置Apache 运行PHP
- [附源码]java毕业设计毕业生离校管理系统
- less与sass的区别是什么?
- “2017金融科技·数据驱动金融商业裂变价值峰会”圆满落幕,数据猿携手金融产业精英探索行业新方向