微信小程序调用后台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实例教程(19) 使用HoTMetal(2)
Dec 23 Javascript
jQuery弹出层插件Lightbox_me使用指南
Apr 21 Javascript
jquery实现图片上传之前预览的方法
Jul 11 Javascript
Jquery常用的方法汇总
Sep 01 Javascript
JavaScritp添加url参数并将参数加入到url中及更改url参数的方法
Oct 26 Javascript
Javascript实现Array和String互转换的方法
Dec 21 Javascript
js实现小窗口拖拽效果
Dec 03 Javascript
Vue.js实现一个todo-list的上移下移删除功能
Jun 26 Javascript
jQuery动画_动力节点节点Java学院整理
Jul 04 jQuery
Vue组件中prop属性使用说明实例代码详解
May 31 Javascript
了解JavaScript函数中的默认参数
May 30 Javascript
javascript前端实现多视频上传
Dec 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 session机制
2011/07/17 PHP
php中的Base62类(适用于数值转字符串)
2013/08/12 PHP
php遍历目录与文件夹的多种方法详解
2013/11/14 PHP
php中最简单的字符串匹配算法
2014/12/16 PHP
weiphp微信公众平台授权设置
2016/01/04 PHP
XHProf报告字段含义的解析
2016/05/17 PHP
JQuery操作三大控件(下拉,单选,复选)的方法
2013/08/06 Javascript
jQuery(js)获取文字宽度(显示长度)示例代码
2013/12/31 Javascript
table对象中的insertRow与deleteRow使用示例
2014/01/26 Javascript
使用jquery.upload.js实现异步上传示例代码
2014/07/29 Javascript
sails框架的学习指南
2014/12/22 Javascript
JS实现为表格动态添加标题的方法
2015/03/31 Javascript
jquery预加载图片的方法
2015/05/27 Javascript
jquery获取select选中值的方法分析
2015/12/22 Javascript
jquery validation验证表单插件
2017/01/07 Javascript
jQuery手风琴的简单制作
2017/05/12 jQuery
利用SpringMVC过滤器解决vue跨域请求的问题
2018/02/10 Javascript
浅谈Angular HttpClient简单入门
2018/05/04 Javascript
微信小程序使用map组件实现路线规划功能示例
2019/01/22 Javascript
微信小程序事件对象中e.target和e.currentTarget的区别详解
2019/05/08 Javascript
[14:57]DOTA2 HEROS教学视频教你分分钟做大人-幽鬼
2014/06/13 DOTA
Python getopt模块处理命令行选项实例
2014/05/13 Python
Python中列表(list)操作方法汇总
2014/08/18 Python
Python实现的数据结构与算法之基本搜索详解
2015/04/22 Python
Python生成密码库功能示例
2017/05/23 Python
Python3 字典dictionary入门基础附实例
2020/02/10 Python
python解析xml文件方式(解析、更新、写入)
2020/03/05 Python
Python在centos7.6上安装python3.9的详细教程(默认python版本为2.7.5)
2020/10/15 Python
前端面试必备之CSS3的新特性
2017/09/05 HTML / CSS
利用HTML5 Canvas API绘制矩形的超级攻略
2016/03/21 HTML / CSS
数据库连接池的工作原理
2012/09/26 面试题
市场开发与营销专业求职信
2013/12/31 职场文书
教书育人演讲稿
2014/09/11 职场文书
公司离职证明样本
2014/09/13 职场文书
学校机关党总支领导班子整改工作方案
2014/10/26 职场文书
python状态机transitions库详解
2021/06/02 Python