微信小程序调用后台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 Dialog(JS 模态窗口,可拖拽的DIV)
Feb 07 Javascript
jquery autocomplete自动完成插件的的使用方法
Aug 07 Javascript
firefox浏览器不支持innerText的解决方法
Aug 07 Javascript
js判断一个字符串是否包含一个子串的方法
Jan 26 Javascript
SWFUpload多文件上传及文件个数限制的方法
May 31 Javascript
Js 获取当前函数参数对象的实现代码
Jun 20 Javascript
Jquery组件easyUi实现表单验证示例
Aug 23 Javascript
AngularJS实现表格的增删改查(仅限前端)
Jul 04 Javascript
Angular整合zTree的示例代码
Jan 24 Javascript
JavaScript同源策略和跨域访问实例详解
Apr 03 Javascript
使用JavaScript保存文本文件到本地的两种方法
Jan 22 Javascript
解决echarts中横坐标值显示不全(自动隐藏)问题
Jul 20 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
雄兵连三大错觉:凯莎没了,凉冰阵亡了,华烨觉得自己又行了
2020/04/09 国漫
Warning: session_destroy() : Trying to destroy uninitialized sessionq错误
2011/06/16 PHP
PHP实现HTML页面静态化的方法
2015/11/04 PHP
Yii 2.0如何使用页面缓存方法示例
2017/05/23 PHP
PHP7使用ODBC连接SQL Server2008 R2数据库示例【基于thinkPHP5.1框架】
2019/05/06 PHP
Laravel框架控制器的middleware中间件用法分析
2019/09/30 PHP
php 中self,this的区别和操作方法实例分析
2019/11/04 PHP
div层的移动及性能优化
2010/11/16 Javascript
nodejs文件操作模块FS(File System)常用函数简明总结
2014/06/05 NodeJs
TinyMCE提交AjaxForm获取不到数据的解决方法
2015/03/05 Javascript
深入探究node之Transform
2017/07/20 Javascript
Angular2.0实现modal对话框的方法示例
2018/02/18 Javascript
通过循环优化 JavaScript 程序
2019/06/24 Javascript
JS前端知识点总结之页面加载事件,数组操作,DOM节点操作,循环和分支
2019/07/04 Javascript
使用layui前端框架弹出form表单以及提交的示例
2019/10/25 Javascript
Python 中 list 的各项操作技巧
2017/04/13 Python
快速了解Python开发中的cookie及简单代码示例
2018/01/17 Python
DataFrame中去除指定列为空的行方法
2018/04/08 Python
Python基础之循环语句用法示例【for、while循环】
2019/03/23 Python
Python PIL图片添加字体的例子
2019/08/22 Python
python爬虫中多线程的使用详解
2019/09/23 Python
tensorflow入门:tfrecord 和tf.data.TFRecordDataset的使用
2020/01/20 Python
python程序输出无内容的解决方式
2020/04/09 Python
如何在python中实现线性回归
2020/08/10 Python
Pycharm创建文件时自动生成文件头注释(自定义设置作者日期)
2020/11/24 Python
python 爬虫网页登陆的简单实现
2020/11/30 Python
HTML5新标签兼容——> 的两种方法
2018/09/12 HTML / CSS
美国家具网站:Cymax
2016/09/17 全球购物
Rag & Bone官网:瑞格布恩高级成衣
2018/04/19 全球购物
印尼值得信赖的在线交易网站:Bukalapak
2019/03/11 全球购物
美国在线医疗分销商:MedEx Supply
2020/02/04 全球购物
科研课题实施方案
2014/03/18 职场文书
投资合作协议书范本
2014/04/17 职场文书
社区植树节活动总结
2015/02/06 职场文书
办公室日常管理制度
2015/08/04 职场文书
告诉你创业计划书的8个实用技巧
2019/07/12 职场文书