前段时间开发中的一款产品,有小程序和app:小程序直接微信登录,app使用手机号+验证码注册,手机号+验证码/密码登录。

用户使用其中一套账号密码即可正常使用,不强制要求完善另一套账号。为避免同一用户小程序是一个账号,app是另一个账号,就有了两套账号体系相互打通(绑定)的需求。

下边梳理下注册登录及相互绑定的流程。

小程序注册登录

从微信进入小程序,如果数据库中没有这个微信用户,即注册为新用户,然后自动登录。如果已经有这个用户了,也自动登录。

这里为什么是UnionID而不是openid。

openid同一用户同一应用唯一,unionid同一用户同一开放平台所有应用唯一。

如果使用openid,当有多个应用,比如多个小程序,或者小程序和app的微信授权登录,同一个微信用户会有多个openid,如何将其对应到同一个账户就很复杂了。

App注册登录

App注册只设计了手机号+验证码的方式。如果没有这个手机号用户,注册为新用户并登录。如果已经有这个手机号用户,自动登录。

比最基本的注册登录多了一个账号是否禁用的判断。

起初是没有这一层判断的,发放新用户红包(可无条件提现)的时候出现了问题:已经被禁止登陆的手机号,又重新注册了新账号。

所以,列入黑名单的账号,不仅要在登陆环节堵住,在注册环节也得堵住。

微信小程序里,绑定/换绑手机号

换绑过程,需要原绑定手机号+验证码验证后才能进入解绑流程,防止他人恶意绑定。这一步是否有必要,要根据产品的性质而定,如果是金融类产品,牵扯到钱,一定要有。用户更换绑定的手机号,很可能原手机号已经无法接收验证码。所以,如果没有其他的解绑途径,最好这一步是可以跳过的。

app手机登录,绑定微信号

以上是注册登录及绑定账号的流程,其中会涉及到很多细节,理好了再补充。

小程序&app 注册登录、绑定的更多相关文章

  1. 写个小程序01 | 注册微信小程序

    出于兴趣和学习目的,我想自己做一个基于"子弹笔记(Bullet Journal)"的小程序.由于个人开发经验很有限,只在课程作业中写过 web 前端,所以也不知道多久能写出来(逃) ...

  2. Java生鲜电商平台-优惠券功能设计与开发(小程序/APP)

    Java生鲜电商平台-优惠券功能设计与开发(小程序/APP) 说明:Java生鲜电商平台-优惠券功能设计与开发(小程序/APP) 目录 1.项目背景与需求分析 2.需求目的与功能点列表 3.业务逻辑 ...

  3. 微信小程序中的事件绑定

    前言: 微信小程序中的事件绑定和Vue中的事件绑定其实有很多的相似之处,所以如果有过Vue相关的经验,学起来的话还是比较容易的. js代码: // 页面级的js文件必须调用Page函数来注册页面, / ...

  4. 小程序app.js小结

    小程序app.js app.js import { ApiUrl } from 'utils/apiurl.js'; import { httpReq } from 'utils/http.js'; ...

  5. 微信小程序-APP生命周期与运行机制

    QQ讨论群:785071190 开发微信小程序之前需要先了解微信小程序运行机制以及其生命周期,小程序APP生命周期需要先从app.js这个文件开始. 阅读过"微信小程序-代码构成" ...

  6. 基于uniapp自定义Navbar+Tabbar组件「兼容H5+小程序+App端Nvue」

    uni-app跨端自定义navbar+tabbar组件|沉浸式导航条|仿咸鱼凸起标签栏 在跨端项目开发中,uniapp是个不错的框架.采用vue.js和小程序语法结构,使得入门开发更容易.拥有非常丰富 ...

  7. 微信小程序APP生命周期

    小程序APP生命周期需要先从app.js这个文件开始,App() 必须在 app.js 中调用,必须调用且只能调用一次,app.js中定义了一些应用的生命周期函数 onLaunch----当小程序初始 ...

  8. 微信小程序API~检查登录状态

    wx.checkSession(Object object) 检查登录态是否过期. 通过 wx.login 接口获得的用户登录态拥有一定的时效性.用户越久未使用小程序,用户登录态越有可能失效.反之如果 ...

  9. Authing新功能——小程序扫码登录

    近期,Authing 发布了新功能--小程序扫码登录. 小程序扫码登录指使用Authing小程序身份管家在网页端或其它客户端执行微信登录,目前的SDK仅支持客户端JavaScript.其它语言若想使用 ...

随机推荐

  1. Docker在linux系统下的安装

    系统要求 本安装教程仅限于CentOS7,其他系统不适用.centos-extras仓库必须是启用状态,这个仓库默认状态是启用,如果不是启用状态,请修改. 卸载旧版本的Docker Docker的旧版 ...

  2. LOJ2257 SNOI2017 遗失的答案 容斥、高维前缀和

    传送门 数字最小公倍数为\(L\)的充分条件是所有数都是\(L\)的约数,而\(10^8\)内最多约数的数的约数也只有\(768\)个.所以我们先暴力找到所有满足是\(L\)的约数.\(G\)的倍数的 ...

  3. MyBatis系列(三) MyBatis 配置文件

    一.properties 此标签的主要作用是引用配置文件,以数据源来举例. 新建mybatis-confing.properties配置文件 mybatis-confing.properties dr ...

  4. Elasticsearch DSL 常用语法介绍

    课程环境 CentOS 7.3 x64 JDK 版本:1.8(最低要求),主推:JDK 1.8.0_121 Elasticsearch 版本:5.2.0 相关软件包百度云下载地址(密码:0yzd):h ...

  5. 千万不要用window自带文本编辑器编辑配置文件或者代码

    1 引言 用windows自带的text文本在最前面会带入看不到的BOM,导致异常 2 代码 package main import ( "strings" "fmt&q ...

  6. 图像上划凸多边形(convexHull()函数)

    import numpy as npimport cv2 as cvimg=np.zeros((400,410),np.uint8)points=np.random.randint(100,400,( ...

  7. jwt认证生成后的token如何传回后端并解析的详解

    jwt认证生成后的token后端解析 一.首先前端发送token token所在的位置headers {'authorization':token的值',Content-Type':applicati ...

  8. 树莓派Raspbian系统密码

    树莓派Raspbian系统密码 树莓派Raspbian系统默认登录用户名为pi,该账户默认密码是raspberry(可在raspi-config中修改). 树莓派的Raspbian系统root用户默认 ...

  9. 禁用浏览器自动给input填充账号和密码

    如果input输入框type为text,设置autoComplete="off" <el-input v-model="ruleForm.loginId" ...

  10. echart添加轴最小值,最大值,间隔以及设置线条颜色

    yAxis: [{ type: 'value' }, { type: 'value', name: '上证指数', //设置最小值,最大值,间隔 min: 1000, max: 6000, inter ...