小程序怎么登陆自己的服务器,如何在小程序中接入微信登录?

原标题:如何在小程序中接入微信登录?

ebbf82945d701c22249dbc674351b1e2.png

文 | feShinhwa

今天,知晓程序(微信号 zxcx0101)为大家分享服务器端基于 Java、SpringMVC 实现的微信小程序登录系统。

登录功能是许多小程序必备的一个功能,通过登录系统,我们可以记录用户在我们的小程序里一些行为,在后台我们也可以模糊地确认用户。

在小程序里,微信只向开发者提供了获取用户昵称、头像的基础接口。这两个值都不能唯一确定用户,如果需要唯一确定用户,需要额外获取 OpenID。

获取到的 OpenID 虽然唯一, 但在开发者的服务器的后台,也不能立刻和确定的用户进行关联,需要开发者的服务器进行绑定。

1c5d5b7efb1d84e49248e5cba1b28cc9.png

微信的官方文档详细的介绍了登录的流程,从流程中我们可以提炼出关键的流程点:

小程序端调用 wx.login()接口,获取登录需要用到的 code;

小程序端通过 wx.request(),与开发者的服务器进行通信;

开发者获取到 code 后,与微信的服务器进行通信,获取 openid和 session_key;

利用随机值来作为键、利用 openid和 session_key作为值,保存用户的登录状态信息;

服务器返回随机值到小程序的客户端,以后小程序的请求附带返回的随机值来确保用户的合法性;

首先,我们要构造出一个 GET 请求, 实现开发者服务器和微信的服务器的通信:

e84319a42570668503dd32ee9656f7c2.png

我们在 controller 获取到 code的值,然后查看 appid和 secret,将通信接口构造完整,并通过 GET 方法来完成和微信服务器的通信。

如果通信正常我们解析 result,我们就可以获得 openid和 session_key。 接下来,我们就要保存用户的登录状态信息了。

01ac7473f65aae7aeff4107a7b9b4012.png

如果需要获取登录用户的用户名和昵称,我们还需要注意一个问题: 昵称中的中文可能会乱码。

这是因为微信会用 ISO-8859-1 编码标准读取中文,而我们需要的是 UTF-8 编码的字符。

对于用户昵称乱码这个问题,我们做一下简单的处理就可以解决:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值