从零开始 Spring Boot 18:微信登录
图源:简书 (jianshu.com)
在之前的文章从零开始 Spring Boot 9:Shiro - 魔芋红茶’s blog (icexmoon.cn)中我介绍了如何给Spring Boot开发的Web应用添加Shiro身份验证模块,这样我们就可以通过用户/密码的方式让用户进行登录。
当然了,这种方式就必须要求用户先进行注册,或者管理员为用户预先添加帐号才行,所以如果我们需要降低用户使用系统干的门槛,让用户更容易登录系统,就可以接入第三方登录。而天朝最流行的第三方登录就是微信,这点应该是没有争议的。下面就介绍如何在现有用户/密码登录体系外额外接入微信登录。
开放平台 or 公众平台
如果我们需要接入某个服务,第一选择自然是去该服务官方的开放平台获取开发文档,微信这里有点不同:它同时有两个“开放平台”:
微信开放平台微信公众平台估计很多人会一开始和我一样一脸懵逼,傻傻分不清,更别提这两个平台实际上都具备将网站应用接入微信登录的能力。
实际上微信公众平台是为微信自家的应用和服务提供的支持,比如公众号和小程序之类的,这里接入网站更像是在一个公众号下依托公众号来进行接入,只能说是为了方便公众号引流等顺带提供的一个接入服务。所以该方式的接入很受限,比如一个公众号下只能绑定两个域名进行接入。此外,这种方式接入的网站只能是通过在微信浏览器内让用户点击授权的方式进行登录,不支持web端展示二维码后微信扫码登录。
但相对的,好处是这种方式接入成本更低,只要有一个服务号级别的公众号就可以接入。而如果要接入微信开放平台,则需要有现成的网站应用,并提交给微信进行审核,审核通过后才能进行开发和接入,相对来说门槛更高,但好处是可以支持微信扫码登录,限制会更少。
所以,必须先明确自己的需求和具体接入方式,是选择“开放平台”还是“公众平台”,否则就很容易和我一开始一样看着“开放平台”的文档用公众平台的测试号接入,结果除了莫名其妙的报错信息外一无所获。
下面将介绍如何通过微信公众平台进行接入。
准备工作
公众号
首先你需要一个服务号级别的