【uniapp 小程序实现已授权用户直接自动登录,未授权用户展示授权页面并实现一键登录】

uniapp 小程序实现已授权用户直接自动登录,未授权用户展示授权页面并实现一键登录


前言

项目背景 :
项目是使用 uniapp 来实现的多端小程序 , 当前实现了 微信小程序 以及 支付宝小程序
登录功能需求 : 如果当前用户曾经授权过就直接自动静默登录,并跳转到首页,静默登录的过程中用户不会看到登录页面 , 如果当前用户是第一次使用,就展示登录页面,在用户点击授权之后,执行登录


以下是自己实现前端的思路以及流程图 , 经验尚浅 , 欢迎指正交流 , 代码就不方便放了哈哈哈哈

一、实现思路

在开始构思的时候,想过挺多方案,

1. 后端接口

后端的接口有三个,以下仅为自己开发使用的接口

a. LoginByCode

这个接口需要的参数是 uni.login 返回的 code 值 , 后端通过 code 值来换取 openid , openid 是用户的唯一标识,拿着 openid 去数据库中查询是否存在该用户,存在就返回 user 对象,不存在就返回 User unbound

b. LoginMpAli

这是支付宝一键登录的接口,需要的参数是用户授权后拿到的信息
参数
参数分别有 encryptedData , sign ,authCode (当然项目实际中还有一些其他的业务参数,但是和登录功能没有什么关联,这就就忽略不讲啦)
其中前两个参数 encryptedData , sign 是小程序通过 my.getPhoneNumber 方法得到的
authCode: 小程序通过 my.getAuthCode(‘auth_base’) 方法获得,采用静默方式,不用提示用户授权,示例值(word)


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值