微信小程序调用后台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 相关文章推荐
ExtJS 简介 让你知道extjs是什么
Dec 29 Javascript
extjs 为某个事件设置拦截器
Jan 15 Javascript
使用Jquery Aajx访问WCF服务(GET、POST、PUT、DELETE)
Mar 16 Javascript
在浏览器窗口上添加遮罩层的方法
Nov 12 Javascript
获取offsetTop和offsetLeft值的js代码(兼容)
Apr 16 Javascript
JavaScript设计模式之代理模式介绍
Dec 28 Javascript
详细分析Javascript中创建对象的四种方式
Aug 17 Javascript
基于vuejs+webpack的日期选择插件
May 21 Javascript
JavaScript和jQuery制作光棒效果
Feb 24 Javascript
傻瓜式解读koa中间件处理模块koa-compose的使用
Oct 30 Javascript
小程序实现分类页
Jul 12 Javascript
Angular 多模块项目构建过程
Feb 13 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 高手之路(二)
2006/10/09 PHP
MySQL数据库转移,access,sql server 转 MySQL 的图文教程
2007/09/02 PHP
memcached 和 mysql 主从环境下php开发代码详解
2010/05/16 PHP
从零开始学YII2框架(六)高级应用程序模板
2014/08/20 PHP
php获取twitter最新消息的方法
2015/04/14 PHP
PHP、Java des加密解密实例
2015/04/27 PHP
laravel中的错误与日志用法详解
2016/07/26 PHP
用PHP去掉文件头的Unicode签名(BOM)方法
2017/06/22 PHP
yepnope.js 异步加载资源文件
2011/09/08 Javascript
js 操作select和option常用代码整理
2012/12/13 Javascript
js 三级关联菜单效果实例
2013/08/13 Javascript
jquery查找tr td 示例模拟
2014/05/08 Javascript
jquery网页回到顶部效果(图标渐隐,自写)
2014/06/16 Javascript
jQuery实现的背景动态变化导航菜单效果
2015/08/24 Javascript
jQuery+jsp实现省市县三级联动效果(附源码)
2015/12/03 Javascript
仅30行代码实现Javascript中的MVC
2016/02/15 Javascript
基于jquery实现图片放大功能
2016/05/07 Javascript
基于jQuery实现弹出可关闭遮罩提示框实例代码
2016/07/18 Javascript
Angular 4.x+Ionic3踩坑之Ionic 3.x界面传值详解
2018/03/13 Javascript
js+html实现周岁年龄计算器
2019/06/25 Javascript
DatePickerDialog 自定义样式及使用全解
2019/07/09 Javascript
Vue路由切换页面不更新问题解决方案
2020/07/10 Javascript
Element Tooltip 文字提示的使用示例
2020/07/26 Javascript
[56:45]DOTA2上海特级锦标赛D组小组赛#1 EG VS COL第一局
2016/02/28 DOTA
[01:11:08]Winstrike vs NB 2018国际邀请赛淘汰赛BO1 8.21
2018/08/22 DOTA
[51:53]完美世界DOTA2联赛决赛日 Inki vs LBZS 第二场 11.08
2020/11/10 DOTA
Python第三方库xlrd/xlwt的安装与读写Excel表格
2017/01/21 Python
Python OpenCV获取视频的方法
2018/02/28 Python
python 获取微信好友列表的方法(微信web)
2019/02/21 Python
mac使用python识别图形验证码功能
2020/01/10 Python
Python常用库Numpy进行矩阵运算详解
2020/07/21 Python
PyQt实现计数器的方法示例
2021/01/18 Python
CSS3 实现发光边框特效
2020/11/11 HTML / CSS
庆七一主持词
2015/06/29 职场文书
Nginx四层负载均衡的配置指南
2021/06/11 Servers
vue选项卡切换的实现案例
2022/04/11 Vue.js