基于Springboot微信授权登录(微信登录之内嵌二维码)
我与产品经理的“恩怨情仇”,在最近一次需求中,需要给用户提供微信快捷登录。
先科普一下,微信开放平台提供了两种二维码的展示方式,一种是跳转页面,还有一种是内嵌在自己的网站中,可以直接在网站内就能完成登录,无需跳转到微信域下登录后再返回,提升微信登录的流畅性与成功率,详细可看微信开放平台文档。
公司也是考虑到了用户体验,故采用内嵌的方式。
准备工作
需要在微信开发平台创建网站应用,得到AppID,AppSecret,申请过程非常简单,这里就不做过多演示。
调用前请详细阅读:微信开放平台网站应用接口文档
application.properties配置
AppID: 微信开放平台创建的网站应用的AppID
AppSecret: 微信开放平台创建的网站应用的AppSecret
scope: snsapi_login 用户授权的作用域
#内嵌方式不需要配置回调地址
#redirect_url: 微信开放平台授权回调域
后端
@Controller
public class ZgWeChatController {
@Value("${AppID}")
private String appid;
@Value("${scope}")
private String scope;
@Value("${AppSecret}")
private String appsecret;
@RequestMapping("getRedirect") /*主管微信登录回调*/
public void getRedirect(HttpServletRequest request, HttpServletResponse response) throws IOException {
String code = request.getParameter("code");
//String state = request.getParameter("state");
//通过code获取access_token
String token_url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code";
token_url = token_url.replace("APPID",appid).replace("SECRET",appsecret).