我是靠谱客的博主 要减肥小懒虫,最近开发中收集的这篇文章主要介绍app绑定微信第三方授权登录一、继续上编文章的短信验证码账号注册登录,这次是微信授权登录二、使用步骤总结,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
一、继续上编文章的短信验证码账号注册登录,这次是微信授权登录
二、使用步骤
1.引入库
<!-- 苹果登录 -->
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
<version>0.9.1</version>
</dependency>
<dependency>
<groupId>com.auth0</groupId>
<artifactId>jwks-rsa</artifactId>
<version>0.9.0</version>
</dependency>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>4.5.16</version>
</dependency>
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt-api</artifactId>
<version>0.11.2</version>
</dependency>
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt-impl</artifactId>
<version>0.11.2</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt-jackson</artifactId> <!-- or jjwt-gson if Gson is preferred -->
<version>0.11.2</version>
<scope>runtime</scope>
2.读入数据
controller层
@ApiOperation(value = "微信授权登录")
public DataResult loginByWeChat(@RequestParam("code") String code) throws Exception {
return DataResult.success(sUserService.loginByWeChat(code));
}
server层
public UserVO loginByWeChat(String code) {
UserVO respVO = new UserVO();
try {
//通过第一步获得的code获取微信授权信息
String url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=" + AuthUtil.APPID + "&secret="
+ AuthUtil.APPSECRET + "&code=" + code + "&grant_type=authorization_code";
JSONObject jsonObject = AuthUtil.doGetJson(url);
String openid = jsonObject.getString("openid");
String token = jsonObject.getString("access_token");
String infoUrl = "https://api.weixin.qq.com/sns/userinfo?access_token=" + token + "&openid=" + openid
+ "&lang=zh_CN";
JSONObject userInfo = AuthUtil.doGetJson(infoUrl);
//成功获取授权,以下部分为业务逻辑处理
if (userInfo != null && openid != null && openid.equals("")){
String nickname = userInfo.getString("nickname");
String headimgurl = userInfo.getString("headimgurl");// 昵称
headimgurl = headimgurl.replace("\", "");//头像
SUserEntity sUser
= sUserMapper.selectOne(Wrappers.<SUserEntity>lambdaQuery().eq(SUserEntity::getOpenId, openid));
if (ObjectUtils.isNotEmpty(sUser)){//已绑定微信
String accessToken = httpSessionService.createToken(sUser);
BeanUtils.copyProperties(sUser, respVO);
respVO.setAccessToken(accessToken);
return respVO;
}else {//未绑定微信
respVO.setOpenId(openid);
return respVO;
}
}else {
throw new RuntimeException("登录失败!!!");
}
} catch (Exception e) {
throw new RuntimeException("登录失败!!!");
}
}
微信授权登录工具类
public UserVO loginByWeChat(String code) {
UserVO respVO = new UserVO();
try {
//通过第一步获得的code获取微信授权信息
String url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=" + AuthUtil.APPID + "&secret="
+ AuthUtil.APPSECRET + "&code=" + code + "&grant_type=authorization_code";
JSONObject jsonObject = AuthUtil.doGetJson(url);
String openid = jsonObject.getString("openid");
String token = jsonObject.getString("access_token");
String infoUrl = "https://api.weixin.qq.com/sns/userinfo?access_token=" + token + "&openid=" + openid
+ "&lang=zh_CN";
JSONObject userInfo = AuthUtil.doGetJson(infoUrl);
//成功获取授权,以下部分为业务逻辑处理
if (userInfo != null && openid != null && openid.equals("")){
String nickname = userInfo.getString("nickname");
String headimgurl = userInfo.getString("headimgurl");// 昵称
headimgurl = headimgurl.replace("\", "");//头像
SUserEntity sUser
= sUserMapper.selectOne(Wrappers.<SUserEntity>lambdaQuery().eq(SUserEntity::getOpenId, openid));
if (ObjectUtils.isNotEmpty(sUser)){//已绑定微信
String accessToken = httpSessionService.createToken(sUser);
BeanUtils.copyProperties(sUser, respVO);
respVO.setAccessToken(accessToken);
return respVO;
}else {//未绑定微信
respVO.setOpenId(openid);
return respVO;
}
}else {
throw new RuntimeException("登录失败!!!");
}
} catch (Exception e) {
throw new RuntimeException("登录失败!!!");
}
}
总结
完成!!!!
最后
以上就是要减肥小懒虫为你收集整理的app绑定微信第三方授权登录一、继续上编文章的短信验证码账号注册登录,这次是微信授权登录二、使用步骤总结的全部内容,希望文章能够帮你解决app绑定微信第三方授权登录一、继续上编文章的短信验证码账号注册登录,这次是微信授权登录二、使用步骤总结所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复