微信小程序调用后台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 相关文章推荐
验证手机号码的JS方法分享
Sep 10 Javascript
最新最热最实用的15个jQuery插件汇总
Jul 05 Javascript
在页面中输出当前客户端时间javascript实例代码
Mar 02 Javascript
jQuery layui常用方法介绍
Jul 25 Javascript
vue.js学习笔记:如何加载本地json文件
Jan 17 Javascript
AngularJS的ng-click传参的方法
Jun 19 Javascript
纯JS实现简单的日历
Jun 26 Javascript
jqgrid实现简单的单行编辑功能
Sep 30 Javascript
vue 标签属性数据绑定和拼接的实现方法
May 17 Javascript
jQuery使用bind动态绑定事件无效的处理方法
Dec 11 jQuery
详解vue beforeRouteEnter 异步获取数据给实例问题
Aug 09 Javascript
Openlayers实现测量功能
Sep 25 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脚本的10个技巧(7)
2006/10/09 PHP
一个从别的网站抓取信息的例子(域名查询)
2006/10/09 PHP
Gregarius中文日期格式问题解决办法
2008/04/22 PHP
PHP中几个可以提高运行效率的代码写法、技巧分享
2014/08/21 PHP
php图像验证码生成代码
2017/06/08 PHP
jquery last-child 列表最后一项的样式
2010/01/22 Javascript
jQuery中:header选择器用法实例
2014/12/29 Javascript
Javascript中indexOf()和lastIndexOf应用方法实例
2016/08/24 Javascript
浅析Javascript ES6中的原生Promise
2016/08/25 Javascript
AngularJS  自定义指令详解及实例代码
2016/09/14 Javascript
ReactNative页面跳转实例代码
2016/09/27 Javascript
JS实现含有中文字符串的友好截取功能分析
2017/03/13 Javascript
jsonp跨域请求详解
2017/07/13 Javascript
javascript中关于类型判断的一些疑惑小结
2018/10/14 Javascript
详解离线安装npm包的几种方法
2018/11/25 Javascript
微信小程序分享功能onShareAppMessage(options)用法分析
2019/04/24 Javascript
详解微信小程序自定义组件的实现及数据交互
2019/07/22 Javascript
NodeJS 文件夹拷贝以及删除功能
2019/09/03 NodeJs
[00:58]2016年国际邀请赛勇士令状宣传片
2016/06/01 DOTA
Python中函数的用法实例教程
2014/09/08 Python
举例讲解Python设计模式编程的代理模式与抽象工厂模式
2016/01/16 Python
python基于twisted框架编写简单聊天室
2018/01/02 Python
Python实现图片尺寸缩放脚本
2018/03/10 Python
[原创]Python入门教程1. 基本运算【四则运算、变量、math模块等】
2018/10/28 Python
Python实现插入排序和选择排序的方法
2019/05/12 Python
python实现MySQL指定表增量同步数据到clickhouse的脚本
2021/02/26 Python
CSS3 input框的实现代码类似Google登录的动画效果
2020/08/04 HTML / CSS
欧洲当代手工玻璃和瓷器的领先品牌:LSA International
2018/06/03 全球购物
广告业务员岗位职责
2014/02/06 职场文书
保护动物倡议书
2014/04/15 职场文书
婚礼父母答谢词
2015/01/04 职场文书
房地产销售主管岗位职责
2015/02/13 职场文书
2015年团队工作总结范文
2015/05/04 职场文书
农贸批发市场管理制度
2015/08/07 职场文书
《月球之谜》教学反思
2016/02/20 职场文书
CPU不支持Windows11系统怎么办
2021/11/21 数码科技