微信小程序调用后台service教程详解


Posted in Javascript onNovember 06, 2020

写在前头,本篇文章简单记录一下,在前后端分离的微信小程序应用中,前端访问后台service的实现思路,没有过多涉及技术实现方面。

先上一张官网的图片,它很清楚的讲明了要在后台service为每一个小程序用户提供登录信息需要做哪些事情。用户拿到了后台给的登录凭据,访问后台service。

微信小程序调用后台service教程详解

静默授权与非静默授权

先来讲讲这两个概念,静默授权,顾名思义,这授权动作对于用户来说是感知不到的,小程序端悄咪咪得就做了。因此,没有知会用户的授权方式拿到的信息也是不太重要的。但是,静默授权是开始重要的一步,因为它为接下来的动作提供了code。调用静默授权可用小程序提供的API:wx.login()。再来讲讲非静默授权,顾名思义,它的授权是要有明显动静的,而且它是要得到用户认可才可以执行。API:wx.getUserInfo(),这个接口要不要用可根据小程序的实际需求来。

后台获取openId

小程序提供了一个接口code2session,拿着我们静默授权获取到的临时登录凭证code再调用一下这个接口就能获取到openId了。openId是在当前小程序中对用户唯一性的标识。注意,这一步是在后台服务器做的,我们参考一下官网的文档(后端API)就会更清楚了。它说:

后端API不能直接在小程序内通过wx.request调用,即api.weixin.qq.com不能被配置为服务器域名。

但是我们会有疑问,我们在自己开发的时候,在小程序端调用是success的,和官网说的并不一样。如果你碰到和我一样的疑问可以看看这个(重点在4.4.2服务器接口)。

基于OAuth2.0生成token

在后台,可以用SpringSecurity的OAuth2.0这一个工具,用openId来生成前端请求后端数据的附带校验信息token。具体是如何实现的笔者也没有深入了解……获取到了这个token后,前端可将其存入webStorage中,每一次调用后台service的时候,就可以利用请求的拦截器在config参数中加入token。后端就可以确定发送请求的用户身份,保证了系统的安全性。

微信小程序调用后台service教程详解

总结:以上大致描绘了小程序后台自定义登录态的开发思路。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
控制打印时页眉角的代码
Feb 08 Javascript
javascript关于继承的用法汇总
Dec 20 Javascript
jquery实现移动端点击图片查看大图特效
Sep 11 Javascript
Javascript技术栈中的四种依赖注入详解
Feb 23 Javascript
Bootstrap表单Form全面解析
Jun 13 Javascript
easyui combogrid实现本地模糊搜索过滤多列
May 13 Javascript
使用JavaScript实现链表的数据结构的代码
Aug 02 Javascript
js实现关闭网页出现是否离开提示
Dec 07 Javascript
JS排序算法之冒泡排序,选择排序与插入排序实例分析
Dec 13 Javascript
Vuex新手的理解与使用详解
May 31 Javascript
layer提示框添加多个按钮选择的实例
Sep 12 Javascript
Vue 3.0 全家桶抢先体验
Apr 28 Javascript
Nuxt.js nuxt-link与router-link的区别说明
Nov 06 #Javascript
在nuxt中使用路由重定向的实例
Nov 06 #Javascript
Nuxt.js的路由跳转操作(页面跳转nuxt-link)
Nov 06 #Javascript
Nuxt的路由配置和参数传递方式
Nov 06 #Javascript
nginx配置域名后的二级目录访问不同项目的配置操作
Nov 06 #Javascript
Jquery Fade用法详解
Nov 06 #jQuery
nuxt静态部署打包相对路径操作
Nov 06 #Javascript
You might like
用PHP+java实现自动新闻滚动窗口
2006/10/09 PHP
PHP获取网卡地址的代码
2008/04/09 PHP
php array_intersect比array_diff快(附详细的使用说明)
2011/07/03 PHP
WordPress中对访客评论功能的一些优化方法
2015/11/24 PHP
PHP实现的多进程控制demo示例
2019/07/22 PHP
检测是否已安装 .NET Framework 3.5的js脚本
2009/02/14 Javascript
js插件方式打开pdf文件(浏览器pdf插件分享)
2013/12/20 Javascript
node.js学习总结之调式代码的方法
2014/06/25 Javascript
Express.JS使用详解
2014/07/17 Javascript
WEB前端设计师常用工具集锦
2014/12/09 Javascript
基于jquery animate操作css样式属性小结
2015/11/27 Javascript
JavaScript+html5 canvas绘制的圆弧荡秋千效果完整实例
2016/01/26 Javascript
Bootstrap所支持的表单控件实例详解
2016/05/16 Javascript
深入理解JavaScript 函数
2016/06/06 Javascript
JavaScript表单验证开发
2016/11/23 Javascript
jquery网页日历显示控件calendar3.1使用详解
2016/11/24 Javascript
详解Weex基于Vue2.0开发模板搭建
2017/03/20 Javascript
Angular2 父子组件数据通信实例
2017/06/22 Javascript
最全正则表达式总结:验证QQ号、手机号、Email、中文、邮编、身份证、IP地址等
2017/08/16 Javascript
Python中replace方法实例分析
2014/08/20 Python
windows下Virtualenvwrapper安装教程
2017/12/13 Python
Python多进程与服务器并发原理及用法实例分析
2018/08/21 Python
python3.7实现云之讯、聚合短信平台的短信发送功能
2019/09/26 Python
pycharm实现在子类中添加一个父类没有的属性
2020/03/12 Python
django queryset 去重 .distinct()说明
2020/05/19 Python
Python列表如何更新值
2020/05/27 Python
Django DRF APIView源码运行流程详解
2020/08/17 Python
pycharm 如何取消连按两下shift出现的全局搜索
2021/01/15 Python
推荐10个CSS3 制作的创意下拉菜单效果
2014/02/11 HTML / CSS
Nixon手表英国官网:美国尼克松手表品牌
2020/02/10 全球购物
Python如何定义一个函数
2015/09/01 面试题
分厂厂长岗位职责
2013/12/29 职场文书
合同协议书格式
2014/04/18 职场文书
质量月口号
2014/06/20 职场文书
装修安全责任协议书
2016/03/22 职场文书
《烈火英雄》观后感:致敬和平时代的英雄
2019/11/11 职场文书