微信小程序调用后台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 相关文章推荐
jquery对单选框,多选框,文本框等常见操作小结
Jan 08 Javascript
Javascript 事件冒泡机制详细介绍
Oct 10 Javascript
js实现小窗口拖拽效果
Dec 03 Javascript
Bootstrap中datetimepicker使用小结
Dec 28 Javascript
JS简单获取当前年月日星期的方法示例
Feb 07 Javascript
jQuery实现ajax的嵌套请求案例分析
Feb 16 jQuery
vuex实现数据状态持久化
Nov 11 Javascript
JS中FileReader类实现文件上传及时预览功能
Mar 27 Javascript
Element Card 卡片的具体使用
Jul 26 Javascript
JS typeof fn === 'function' && fn()详解
Aug 22 Javascript
jQuery编写QQ简易聊天框
Aug 27 jQuery
浅谈Vue的computed计算属性
Mar 21 Vue.js
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抓即时股票信息
2006/10/09 PHP
zen cart新进商品的随机排序修改方法
2010/09/10 PHP
PHP包含文件函数include、include_once、require、require_once区别总结
2014/04/05 PHP
浅谈php中include文件变量作用域
2015/06/18 PHP
学习php设计模式 php实现命令模式(command)
2015/12/08 PHP
PHP中常用的数组操作方法笔记整理
2016/05/16 PHP
一文掌握PHP Xdebug 本地与远程调试(小结)
2019/04/23 PHP
jQuery学习笔记 操作jQuery对象 CSS处理
2012/09/19 Javascript
AngularJS中的过滤器使用详解
2015/06/16 Javascript
jQuery仿360导航页图标拖动排序效果代码分享
2015/08/24 Javascript
JQuery标签页效果的两个实例讲解(4)
2015/09/17 Javascript
Angular 路由route实例代码
2016/07/12 Javascript
JavaScript 轮播图和自定义滚动条配合鼠标滚轮分享代码贴
2016/10/28 Javascript
AngularJS解决ng界面长表达式(ui-set)的方法分析
2016/11/07 Javascript
PHP 实现一种多文件上传的方法
2017/09/20 Javascript
Vue filter介绍及详细使用
2018/04/04 Javascript
如何在vue 中引入使用jquery
2020/11/10 jQuery
[12:51]71泪洒现场!是DOTA2让经典重现
2014/03/24 DOTA
Python中正则表达式详解
2017/05/17 Python
Python探索之创建二叉树
2017/10/25 Python
python实现csv格式文件转为asc格式文件的方法
2018/03/23 Python
python散点图实例之随机漫步
2018/08/27 Python
python 读写excel文件操作示例【附源码下载】
2019/06/19 Python
Python整数对象实现原理详解
2019/07/01 Python
django ajax发送post请求的两种方法
2020/01/05 Python
keras输出预测值和真实值方式
2020/06/27 Python
python操作ini类型配置文件的实例教程
2020/10/30 Python
详解CSS3中字体平滑处理和抗锯齿渲染
2017/03/29 HTML / CSS
移动端html5模拟长按事件的实现方法
2018/09/30 HTML / CSS
SQL Server的固定数据库角色都有哪些?对应的服务器权限有哪些?
2013/05/18 面试题
Linux面试经常问的文件系统操作命令
2015/11/05 面试题
应聘编辑职位自荐信范文
2014/01/05 职场文书
完整版商业计划书
2014/09/15 职场文书
2014年干部作风建设总结
2014/10/23 职场文书
幼儿园毕业典礼家长致辞
2015/07/29 职场文书
SpringBoot使用ip2region获取地理位置信息的方法
2022/06/21 Java/Android