小程序 php登录状态,小程序登录逻辑

整体思路具体的实现要根据后端程序员提供的文档和业务逻辑而定,以下的思路仅仅是用来熟悉微信登录相关的接口

首先引导用户进入登录页面;

使用button组件的开发能力,发起获取用户信息getUserInfo的授权;

获取到用户的基本信息后,使用wx.login(),获取登录code;

将获取的code和第2步获取的用户基本信息,通过wx.request()提交至服务器端;

服务器端拿到提交的数据后进行相关的验证处理,并且通过接受的code值,换取该用户的openid;

服务端验证通过后,将相关的数据返回给小程序客户端,前端做好相关数据的存储,校验(在必要的时候)

下面是小程序官方提供的登录时序图:

a37fdc441bb7019a7e213945eb41be04.png

注:openid是用户在当前小程序下的唯一标识

登录实现

引导用户进入登录授权

通过明确的进入点,让用户进入登录页面:

3acd83ef1dc39ec1bed9672bac7ff7a0.png

发起用户授权,获取相关信息

进入登录页面后,通过button标签开放能力,getUserInfo发起用户授权:

button获取用户信息开放能力

a0599c7510164594868e9202635875f4.png

7ea56eeac0dfb6b8417d934be903479d.png

请求后台登录接口

点击微信登录按钮后,触发getUserInfo事件,代码如下:

e0b28c14e30cda71e51e0d74be1c543a.png

进过上面的步骤,我们已经可以获取到登录后服务器返回的数据,该接口返回的数据如下:

{

code:0,

msg:"success",

info:{

avatarUrl:"用户头像",

nickName:"用户昵称",

openid:"openid"

},

session_id:"后台的session_id"

}

登录后如下所示:

85c21bc2f280d949325e13908d798b65.png

登录状态检查的实现

登录检查包括两种:

用户从未登录

登录过,但是不知道有无过期

对于第一种情况,直接跳转到登录授权页面即可;第二种情况则需要先检查是否过期,检查的方式又有两种情况:

通过服务器自定义的逻辑判断登录有无过期(类似vue登录的token值,还有其他的一些方式)

调用小程序提供的wx.checkSession()检查session_key是否有效

这里我们采用第2中检查方式,判断登录状态的有效性。

在app.js中新增checkLogin方法,方便全局调用

a89ec33c5732cceea3997d55572ec248.png

加入我们需要在订单页面检查用户是否登录,在订单页面的生命周期函数onshow中添加如下代码:

cf440d1ee5837424376ec835d6b2e6d5.png

其中setIsLogin方法,是在app.js中定义的,主要用来设置登录的状态,app.js中实现如下:

8b2f093e736cf2ca992838b1203ba4cf.png

该登录状态主要用于切换页面中登录和未登录前后显示的内容

在进入订单页面的时候,如果未登录,如下所示:

2f3713ff5bb8ae8c711d935b0fc67b65.png

点击去登录则会重新跳转到登录授权页面,登录后再进入授权页,如下所示:

34c45b1bfb2bf808ceee814aef4d2b3e.png

退出登录

退出登录即清除掉登录保存的相关信息即可,具体逻辑自行实现。

也不排除在退出登录的时候,需要请求服务器端,具体情况根据后台提供的文档而定

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值