现如今使用微信的人越来越多,很多网站都实现了让用户直接扫码就能登录网站,正是这种方式给用户带来了极多的好处,最重要的是用户不用担心自己总记不住账户密码,从而登录不了网站。
为了方便用户登录,我也想接入微信扫码登录。但因为微信开发者需要企业认证,所以没办法接入个人网站实现微信扫码登录。最近我发现了一个小程序“码上登录”,对个人开发者提供了免费的微信扫一扫登录入口,其实就是一个桥接入口,为我们去获取用户扫码之后的信息,从而在发给我们,我们接收再返回信息即可。
好了,撸起袖子直接干吧!
准备工作
在码上登录注册,然后创建自己的应用并指定回调地址,会生成一个secretKey,后面获取二维码链接用得到

微信登录时序图

首先我们向码上登录的服务器发送请求获取二维码信息,然后用户扫码,用户跳转到登录的小程序,用户点击登录,授权,码上登录服务器向自己的服务器回调入口返回数据,然后我们返回登录状态信息。
后台开发
向码上登录服务器发送请求,返回二维码数据信息
secretKey(即我们创建应用时生成的secretKey)调用码上登录服务器时候需要进行验证的凭据
@FeignClient(name = "wx", url = "https://server01.vicy.cn")
public interface UserFeignClient {
/**
* 向码上登录服务器请求二维码
*/
@GetMapping(value = "/8lXdSX7FSMykbl9nFDWESdc6zfouSAEz/wxLogin/tempUserId")
String getQrCode(@RequestParam(required = true, value = "secretKey") String secretKey);
}
@FeignClient标签的常用属性如下:
- name:指定FeignClient的名称,如果项目使用了Ribbon,name属性会作为微服务的名称,用于服务发现
- url: url一般用于调试,可以手动指定@FeignClient调用的地址
- decode404:当发生http 404错误时,如果该字段位true,会调用decoder进行解码,否则抛出FeignException
- configuration:
901



被折叠的 条评论
为什么被折叠?



