微信小程序登录流程时序

废话不多说,直接上代码:

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 微信开发工具授权登录详解相关推荐

  1. 微信小程序之 微信开发工具使用教程详解

    如果你要开发自己的微信小程序或者小游戏,微信开发者工具是必不可少的,因为有些微信封装的方法只有微信开发者工具上才能使用,还有一个重要的原因就是,我们提交我们的代码审核必须通过该工具来提交,所有要做微信 ...

  2. 微信小程序授权登录详解

    文章目录 流程 wx.login() auth.code2Session 实战 前端代码 后端代码    流程 说明 调用 wx.login() 获取 临时登录凭证code ,并回传到开发者服务器. ...

  3. 开发工具IDEA使用详解

    开发工具IDEA使用详解 1. IntelliJ IDEA的下载与安装 2. IDEA配置jdk开发环境 3. 隐藏.idea文件夹和.iml等文件 4. IDEA创建Java工程 5. 修改编写代码 ...

  4. 微信web开发工具-授权登录

    释: 我是订阅号,申请的微信开发测试账号,操作授权登录 1.  下载web开发工具 2.  在公众号列表中, 开发者工具->web开发工具-> 绑定开发者账号 ->输入你的微信号(微 ...

  5. php 微信开发 网页授权登录,微信开发网页授权登录——2018年6月2日

    微信网页授权登录用户同意授权,获取code 通过code,获取网页的access_token 拉取用户信息(scope 为snsapi_userinfo) application\index\cont ...

  6. ARM开发工具软件命令详解---嵌入式回归第三篇

    先从bootloader开始,因为暂时目前这些都会是裸机程序相关! 本人这里是VMwarm10.0上安装的红帽linux虚拟机.从下面的截图中可以看出 裸机开发流程: 这里先做第三步(第一步第二步已提 ...

  7. Spring boot 项目(十三)——实现微信公众号授权登录获取用户信息

    引言 微信公众号开发中,必不可少的一环:公众号授权登录.获取微信用户信息 前期准备 内网渗透=>生成本地指定端口映射的外网域名 链接:内网渗透工具natapp使用详解 域名生成之后修改yml文件 ...

  8. 基于Spring Boo微信公众号授权登录获取用户信息(附带完整源码)

    简介 微信公众号开发中,必不少可少的一环:公众号授权登录.获取微信用户信息. 本地完整运行环境准备 内网渗透=>生成本地指定端口映射的外网域名 传送门:内网渗透工具Natapp使用详解 域名生成 ...

  9. SpringBoot微信小程序授权登录

    SpringBoot微信小程序授权登录 一.appId 1.1.自己是管理者:微信公众平台,申请或登录自己的微信小程序,在开发者管理中即可看到 2.2.自己是开发者:让管理员将自己加入到小程序开发者管 ...

最新文章

  1. 在CentOS 6.9 x86_64上搭建全功能的OpenResty 1.13.6.1笔记
  2. 用C#调用Windows API向指定窗口发送按键消息
  3. Nginx 的 default_server 指令
  4. 数据查询分页 获取总数时间太长_干货:SQL Server 查询语句
  5. MATLAB 无约束一维极值问题
  6. arm linux gcc 编译,Linux arm-linux-gcc交叉编译环境配置
  7. 从ACL2021看对比学习在NLP中的应用
  8. kernal tch 下载 天正_tch kernal.arx
  9. 20个最佳WordPress SEO插件
  10. Double类型比较大小
  11. AngularJs+bootstrap搭载前台框架——基础页面
  12. Mac下搭建react及bable
  13. 解决被卡巴斯基提示说KEY被列为黑名单
  14. 软考架构设计师脑图总结
  15. adb安装apk python小工具
  16. DBCO-PALA-b-PEG DBCO-聚硫辛酸-聚乙二醇
  17. 手机盾验证失败是什么意思_手机盾是什么意思
  18. 创业者的噩梦 -商业竞争究竟有多残酷和黑暗
  19. 未婚同居能白头偕老吗
  20. 如何更新google浏览器

热门文章

  1. bert中文文本情感分类 微博评论挖掘之Bert实战应用案例-文本情感分类
  2. 上海人才引进居住证转户口的经验(收藏)
  3. JavaWeb、Tomcat、jquery:Failed to load resource: the server responded with a status of 500 ()
  4. EIZO船舶触摸屏维修T1502-B
  5. 疾风计划:离散数学丨第一章_命题逻辑
  6. 托福高频真词List11 // 附托福TPO阅读真题
  7. MAC 使用内置Apache 运行PHP
  8. [附源码]java毕业设计毕业生离校管理系统
  9. less与sass的区别是什么?
  10. “2017金融科技·数据驱动金融商业裂变价值峰会”圆满落幕,数据猿携手金融产业精英探索行业新方向