文章目录

  • 后端有关说明
  • 前端有关说明
  • 接口设计
    • 小程序注册/登录接口
    • APP 注册/登录接口
    • PC Web 端的注册/登录接口
  • 小程序注册/登录序列图
  • 校验 token

后端有关说明

  1. 登录和注册的逻辑要独立抽取写成2个接口:注册接口、登录接口

  2. 小程序、APP、PC端的登录接口和注册接口要分开,因为不同端的注册和登录,业务流程会有差别,为了避免麻烦,建议分开写

  3. APP 和 小程序 的登录 token 不需要时效性,PC端的登录 token 需要时效性

所以存储token表字段如下:

字段名称 类型 备注
token串 varchar
时效类型 tinyint 0 表示无时效性,1 表示有时效性
用户ID integer unsigned
创建时间 datetime 对有时效性的 token 而言,可以理解为 token 的有效期开始时间

后期PC端如何判断token的时效,每次请求时拿着 token 去数据库取创建时间(可以理解为 token 的有效起始时间),然后将当前系统时间减去 token 的创建时间

  1. 注册成功后,后端自行调登录接口,不要让前端调登录接口

前端有关说明

  1. 需要用户信息的接口,需要传token,但是前端调此类接口,token也可以不传或者传空值

  2. 首次打开小程序,会按顺序做以下几件事:
    (1)获取用户的定位信息
    (2)发起登录请求
    (3)请求首页数据

  3. 用户进入其他内页后再返回首页,获取页面缓存的数据

  4. 登录成功后返回首页才会请求新的首页数据

接口设计

小程序注册/登录接口

  1. 小程序登录接口说明

小程序登录接口传参:手机号、OpenID、UnionID、code(微信登录凭证),返回:token、OpenID、UnionID、用户信息(昵称、头像、签名、区域、性别)

后端获取code,然后通过code获取OpenID,然后再查下该OpenID是否存在,存在则生成token,然后把token和user_id保存在数据库中,接着把token、OpenID、用户信息(昵称、头像、签名、区域、性别)返回;如果不存在说明未注册,也要将此OpenID返回给前端,用户注册时需要用到。

  1. 小程序注册接口说明

小程序注册接口传参:昵称、头像、区域、性别、手机号、encryptedData、iv、code、OpenID、UnionID,返回注册成功与否message。

如果获取不到UnionID、手机号码,后端用 encryptedData、iv以及 session_key 解密出 UnionID 和手机号码,再一起保存在用户表中。

APP 注册/登录接口

暂无

PC Web 端的注册/登录接口

暂无

小程序注册/登录序列图

校验 token

  1. 接口获取到 token,则调“校验 token”方法(例如:拦截器),此方法拿着 token 去数据库查询,如果查询不到,则告诉前端 token 无效,需要重新登录;如果查询到 token,则获取到 user_id,然后凭 user_id 获取请求数据返回给前端。

  2. 接口无法获取到 token,则告诉前端需要登录。

微信小程序注册/登录接口开发相关推荐

  1. 微信小程序-注册登录功能-本地数据保存-页面数据交替

    Title:微信小程序-注册登录功能-本地数据保存-页面数据交替 完美-小程序登录注册功能.rar-- 访问码:yqa5 1.主页面 主页面login.js代码 // pages/login/logi ...

  2. 微信小程序api登录接口wx.login(OBJECT)

    有些小程序可以直接使用而无需登录,例如,古诗.美图欣赏.美文等,这些微信小程序往往没有登录要求,只需要打开使用就可以了.但是,很多的小程序则往往需要登录,例如,在微信小程序里面您要发表评论.您要购买产 ...

  3. Springboot实现微信小程序注册登录及微信登录

    运行环境 jdk1.8+eclipse+tomact 8.5+maven3.5+springboot 2.0.1 微信开发者工具 数据库 一张表三个字段 CREATE TABLE `user` (`u ...

  4. 成语填空微信小程序,登录接口修复版

    花钱买的小程序源码,免费共享.

  5. 微信小程序授权登录接口

    1.首先接收前端传过来的code 2.带上appid,secret以及code去请求微信,获取openid,那倒openid就可以获取用户的信息了 获取到openid,将openid返回给前端,前端获 ...

  6. 01_微信小程序-BLE低功耗蓝牙开发-注册和工具安装

    1. 访问微信公众号平台,注册小程序 注意:一个邮箱只能注册一个微信小程序 2. 下载安装开发工具 这里有个重要的东西AppID,注册申请的时候生成的.我们这里只做学习用,所以可以点击后面的测试号,会 ...

  7. webform窗体怎么实现session唯一标识_微信小程序用户登录和登录态维护的实现_javascript技巧...

    这篇文章主要介绍了微信小程序用户登录和登录态维护的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 让用户登录,标识用户和获取 ...

  8. 基于Thinkphp5+EasyWeChat+fastadmin微信小程序授权登录获取手机号微信公众号网页---联合授权登录

    战前准备 1.使用 composer 安装 EasyWeChat $ composer require overtrue/wechat:~4.0 -vvv 或者在composer.json文件renq ...

  9. 微信小程序注册/登陆,若依后台获取token

    微信小程序注册/登陆,若依后台获取token 后端接口: @ApiOperation(value = "小程序登入", httpMethod = "POST") ...

最新文章

  1. 分布式系统咋做同步?虐死人!
  2. junit--eclipse插件
  3. java继承和引用_浅谈Java继承、传递
  4. css 一行显示_CSS笔记1
  5. CentOS7安装PHP5.6.23
  6. [POI2007]ODW-Weights(贪心)
  7. Tools_Procexp找文件被哪个进程占用
  8. 错误解决:java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to star
  9. Handler native层实现原理
  10. WIN10家庭版自动锁屏解决方案
  11. SAM-BA 2.14 reconfiguration----DIY你的sam-ba
  12. 数据库数据模型理解 概念数据模型 逻辑数据模型 物理数据模型区别和联系
  13. 益聚星荣:如果没有现代人类,地球会有什么不同?
  14. Another version of Vue Devtools seems to be installed报错
  15. google无法访问此网站
  16. 简述同步和异步的区别
  17. Aspose.Word企业案例:Acumen Fuse 使用 Aspose 组件将项目分析数据导出到 Microsoft Word 和 Excel
  18. Java学习记录_1:MOOC《零基础学Java语言》课后习题解
  19. 如何用计算机装B,计算机专业装逼经验(转)
  20. BSON和JSON的区别

热门文章

  1. eclipse neon_在自定义Java 9映像上运行Eclipse Neon
  2. spring解密_在运行时更新代码(已Spring解密)
  3. jboss调jvm参数_在同一台机器上启动多个JBoss A-MQ JVM
  4. jooq sql_用jOOQ用Java编写SQL
  5. hibernate jpa_JPAHibernate替代方案。 如果JPA或Hibernate对于我的项目而言不够好,该怎么办?...
  6. 背包问题九讲_背包问题
  7. modbus调试时间超时_Java调试器和超时
  8. jit 和 jvm_关于JVM和JIT的一点点
  9. 雅加达EE:干净的板岩
  10. Java与Python:哪一种最适合您? [信息图]