java面试题之小程序登录流程

之前项目中做过一个点单系统,前端用的是小程序,用户必须先登录才能执行点菜,下单等操作,小程序登录时,先调用了wx.login方法,获取到了code(临时登录凭证),然后前端也就是小程序端发送请求并携带ode发送至服务端,服务端接收到前端发送的code后要获取到用户的openld,因为openld是用户的唯一标识,所有要获取此属性作为用户的信息存储到数据库,获取openid,通过httpclient向微信接口发送htp请求,携带好accessid,accesskey,code等属性(这些属性可以在官方文档查看),获取到后,是字符审形式的,可以用ISON.parseobiet方法他转为对象获取openid,得到后,先判断是否为空,为空报错,不为空继续执行,然后判断通过openid查询用户表中是否有此用户,无则相当于是新用户,执行插入,将用户的openid插入,并通过usegeneratekey和keyproperty,有则继续执行,之后生成iwt token,将用户的id作为载荷,设置好secret秘钥,过期时间,生成token,之后将token,openid,用户的id返回给小程序端,小程序端将token存储到localstorage中,以后再登录的时候,前端发送的请求时携带token,服务端通过拦裁器,解析token,得到用户id,存入到threadlocal中,以便之后做校验或者设置用户信息,比如提交订单,点选菜品到购物车等

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值