微信小程序调用后台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 相关文章推荐
Javascript调试工具(下载)
Jan 09 Javascript
类之Prototype.js学习
Jun 13 Javascript
JQuery的read函数与js的onload不同方式实现
Mar 18 Javascript
js获取当前页面路径示例讲解
Jan 08 Javascript
点击弹出层效果&弹出窗口后网页背景变暗效果的实现代码
Feb 10 Javascript
深入理解JS中的变量及作用域、undefined与null
Mar 04 Javascript
jquery操作checkbox实现全选和取消全选
May 02 Javascript
JS实现旋转木马式图片轮播效果
Jan 18 Javascript
JS前端开发判断是否是手机端并跳转操作(小结)
Feb 05 Javascript
Angular4自制一个市县二级联动组件示例
Nov 21 Javascript
移动端(微信等使用vConsole调试console的方法
Mar 05 Javascript
node.js 使用 net 模块模拟 websocket 握手进行数据传递操作示例
Feb 11 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输出Excel文件类
2010/02/08 PHP
怎样使用php与jquery设置和读取cookies
2013/08/08 PHP
php中socket的用法详解
2014/10/24 PHP
php+ajax注册实时验证功能
2016/07/20 PHP
PHP控制前台弹出对话框的实现方法
2016/08/21 PHP
PHP实现表单提交时去除斜杠的方法
2016/12/26 PHP
Yii框架日志操作图文与实例详解
2019/09/09 PHP
jquery 框架使用教程 AJAX篇
2009/10/11 Javascript
Jquery升级新版本后选择器的语法问题
2010/06/02 Javascript
javascrip关于继承的小例子
2013/05/10 Javascript
让JavaScript和其它资源并发下载的方法
2014/10/16 Javascript
js实现多选项切换导航菜单的方法
2015/02/06 Javascript
JavaScript简单实现弹出拖拽窗口(二)
2016/06/17 Javascript
node.js中 stream使用教程
2016/08/28 Javascript
实例解析jQuery中如何取消后续执行内容
2016/12/01 Javascript
简单实现js进度条加载效果
2020/03/25 Javascript
jquery+css实现下拉列表功能
2017/09/03 jQuery
JS实现字符串翻转的方法分析
2018/08/31 Javascript
Vue面试题及Vue知识点整理
2018/10/07 Javascript
JS实现的排列组合算法示例
2019/07/16 Javascript
react实现antd线上主题动态切换功能
2019/08/12 Javascript
JavaScript 实现自己的安卓手机自动化工具脚本(推荐)
2020/05/13 Javascript
js实现盒子滚动动画效果
2020/08/09 Javascript
[49:21]完美世界DOTA2联赛循环赛 Ink Ice vs LBZS BO2第二场 11.05
2020/11/06 DOTA
Django实现支付宝付款和微信支付的示例代码
2018/07/25 Python
Django之路由层的实现
2019/09/09 Python
Python使用APScheduler实现定时任务过程解析
2019/09/11 Python
Django模型中字段属性choice使用说明
2020/03/30 Python
scrapy-redis分布式爬虫的搭建过程(理论篇)
2020/09/29 Python
css3实现3d旋转动画特效
2015/03/10 HTML / CSS
阿迪达斯德国官方网站:adidas德国
2017/07/12 全球购物
介绍一下EJB的分类及其各自的功能及应用
2016/08/23 面试题
七年级数学教学反思
2014/01/22 职场文书
2014年小学美术工作总结
2014/12/20 职场文书
解决SpringCloud Feign传对象参数调用失败的问题
2021/06/23 Java/Android
浅谈resultMap的用法及关联结果集映射
2021/06/30 Java/Android