springboot集成三方登录(微信)

准备工作

网站应用微信登录是基于OAuth2.0协议标准构建的微信OAuth2.0授权登录系统。 在进行微信OAuth2.0授权登录接入之前,在微信开放平台注册开发者账号,并拥有一个已审核通过的网站应用,并获得相应的AppID和AppSecret,申请微信登录且通过审核后,可开始接入流程。

1、在微信开放平台里面获取到登录连接(获取到对应的code值)

<a href="https://open.weixin.qq.com/connect/qrconnect?  appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=snsapi_login&state=1#wechat_redirect">
  <i class="am-icon-weixin am-icon-sm"></i><span>微信登录</span>
 </a>
参数是否必须说明
appid应用唯一标识
redirect_uri请使用urlEncode对链接进行处理
response_type填code
scope应用授权作用域,拥有多个作用域用逗号(,)分隔,网页应用目前仅填写snsapi_login

 appid和redirect_uri对应的值需要你在微信开放平台里面注册开发者账号后并拥有一个已审核通过的网站应用 才会有对应的appid和redirect_uri

2、点击微信登录会弹出一个二维码 通过微信扫一扫进行登录 登录完成后他会通过你写的redirect_uri(回调地址) 调转到相应的页面上并会返回一个code值以及state值(地址栏中)

3、前端截取code值再将code值发送请求到后端 后端通过下面链接(需要传递code值、appid、secret)来获取到对应的token值以及openId

//获取到code码  发送请求获取到token 令牌
        String url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=%s&secret=%s&code=%s&grant_type=authorization_code";
        String newUrl = String.format(url, APPID, SECRET, code);
        String tokenUrl = HttpUtil.get(newUrl);
        JSONObject jsonObject = JSONObject.parseObject(tokenUrl);
        String token = jsonObject.getString("access_token");
        String openId = jsonObject.getString("openid");
参数是否必须说明
appid应用唯一标识,在微信开放平台提交应用审核通过后获得
secret应用密钥AppSecret,在微信开放平台提交应用审核通过后获得
code填写第一步获取的code参数
grant_type填authorization_code

4、再根据所得到的token以及openId 通过一下链接 能够获取到对应的微信用户信息 并转换成Java的对象

//获取微信用户信息
        //获取到token  在获取对应的用户信息

        String WX = "https://api.weixin.qq.com/sns/userinfo?access_token=%s&openid=%s";
        String WXUrl = String.format(WX, token, openId);
        String WXuser = HttpUtil.get(WXUrl);
        WXUserDto wxObj = JSONObject.parseObject(WXuser).toJavaObject(WXUserDto.class);

 

获取到微信用户信息(这里只获取了openId用户唯一标识符,nickname微信用户名,sex男女,headimgUrl  微信用户头像的地址 以及uinonid)

存入数据库完成!

  • 8
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值