APP微信登录---第三方登录
(一)引入maven配置
<dependency>
<groupId>com.github.liyiorg</groupId>
<artifactId>weixin-popular</artifactId>
<version>2.8.</version>
</dependency>
(二)编写controller
- 前端传递过来一个code字段,popular框架自主完成以下的操作
@Controller
@RequestMapping(value = "/weixin")
public class WeiXinLogin {
@Autowired
private UserService userService;
//固定
private String appId="wxf51";
private String appSecret="34b625fa6afd86693325c84"; //访问此资源的url: http://localhost:8090/weixin/wxLogin.json
@RequestMapping(value = "/wxLogin", produces = MediaType.APPLICATION_JSON_VALUE)
public void wxreg(ModelMap result,HttpServletRequest request, String code){ //1,获取凭证信息
SnsToken token = SnsAPI.oauth2AccessToken(appId, appSecret, code);
//依据凭证信息判断用户是否用微信注册账户?
String openid = token.getOpenid();
System.out.println("+++++++++++++++++++++openId=:"+openid);
User userLogin = new User();
userLogin.setOpenId(openid);
userLogin = userService.getUserByExample(userLogin);
if (userLogin == null){//用户没有使用微信注册过用户信息 //2,服务器收到用户的登录请求,向微信开放平台发送access_token是否有效的验证请求
BaseResult baseResult = SnsAPI.auth(token.getAccess_token(), token.getOpenid());
if("0".equals(baseResult.getErrcode()) && "ok".equals(baseResult.getErrmsg())){ //3,服务端获取到新的access_token等信息,并返回给客户端,客户端成功登录或者重新获取授权。
weixin.popular.bean.user.User user = SnsAPI.userinfo(token.getAccess_token(), token.getOpenid(), "zh-CN");
System.out.println("user: " + user.toString());
result.put("code",200);
result.put("msg","成功获得微信登录信息");
result.put("data",user);
User userInSert = new User();
//待添加其他属性
userInSert.setOpenId(user.getOpenid());
userInSert.setNickname(user.getNickname());
userInSert.setSex(user.getSex());
userInSert.setProvince(user.getProvince());
userInSert.setCountry(user.getCountry());
userInSert.setCity(user.getCity());
userInSert.setAvatar(user.getHeadimgurl());
userInSert.setLoginName(user.getNickname());
userService.addUser(userInSert);//添加该用户到数据库
userInSert = userService.getUserByExample(userInSert); System.out.println("+++++++++++++++++++userInsert="+userInSert.toString()); request.getSession().setAttribute("users",userInSert);
result.put("code",200);
result.put("msg","微信绑定成功!");
result.put("data",userInSert);
}else{
result.put("code",302);
result.put("msg","获得微信登录用户失败");
}
}else{
request.getSession().setAttribute("users",userLogin);
System.out.println("登录成功!"+userLogin.toString());
result.put("code",200);
result.put("msg","登录成功!");
result.put("data",userLogin);
}
}
}
APP微信登录---第三方登录的更多相关文章
- iOS微信实现第三方登录的方法
这篇文章主要介绍了iOS微信第三方登录实现的全过程,一步一步告诉大家iOS微信实现第三方登录的方法,感兴趣的小伙伴们可以参考一下 一.接入微信第三方登录准备工作.移动应用微信登录是基于OAuth2 ...
- 拾人牙慧篇之———QQ微信的第三方登录实现
一.写在前面 关于qq微信登录的原理之流我就不一一赘述了,对应的官网都有,在这里主要是展示我是怎么实现出来的,看了好几个博客,有的是直接复制官网的,有的不知道为什么实现不了.我只能保证我的这个是我实现 ...
- Android通过微信实现第三方登录并使用OKHttp获得Token及源码下载
这里对于App在微信开放平台上申请AppID和secret在这里就略过了,我们微信的授权登录流程,腾讯官网给的流程如下: 1. 第三方发起微信授权登录请求,微信用户允许授权第三方应用后,微信会拉起应用 ...
- 实现QQ、微信、新浪微博和百度第三方登录(Android Studio)
前言: 对于大多数的APP都有第三方登录这个功能,自己也做过几次,最近又有一个新项目用到了第三方登录,所以特意总结了一下关于第三方登录的实现,并拿出来与大家一同分享: 各大开放平台注册账户获取AppK ...
- Android 实现QQ、微信、新浪微博和百度第三方登录
前言: 对于大多数的APP都有第三方登录这个功能,自己也做过几次,最近又有一个新项目用到了第三方登录,所以特意总结了一下关于第三方登录的实现,并拿出来与大家一同分享: 各大开放平台注册账户获取AppK ...
- IOS 集成第三方登录
我使用的是友盟上集成的第三方登录功能,一共使用了三个应用的登录授权,QQ.微信.新浪微博.由于第三方登录授权成功后,需要跳转到一个新的界面,所以这里需要在项目里设置第三方登录的SSO授权.就是必须安装 ...
- Android-友盟第三方登录与分享
### 前言 最近项目中又一次需要集成友盟的三方登录与分享,之前没有记录过,所以这次来写一下... ### 准备工作 1.注册友盟账号创建应用,获取key:申请地址http://www.umeng.c ...
- [Next] Next.js+Nest.js实现GitHub第三方登录
GitHub OAuth 第三方登录 第三方登录的关键知识点就是 OAuth2.0 . 第三方登录,实质就是 OAuth 授权 . OAuth 是一个开放标准,允许用户让第三方应用访问某一个网站的资源 ...
- 微信公众号与APP微信第三方登录账号打通
一个项目同时开发了APP和微信服务号,需要做到APP和微信服务号的账号互通同步,也就是说一个账号在2个地方都可以用,当然这个前提是保证你公司自己的服务器的数据库用的是同一套. 为保证用户数据的唯一性, ...
随机推荐
- dda的fpga实现(转载)
The general approach using DDAs will be to simulate a system of first-order differential equations, ...
- BZOJ3590 [Snoi2013]Quare
题意 4.20四川芦山地震发生后,抗震救灾委员会接到一个紧急任务,四川省给该委员会发了一份地图,这份地图给出了该省一些城市的情况:任两个城市是用一条或多条公路连接起来的,也可以没有公路连接,但是每个城 ...
- 使用PHP类库PHPqrCode生成二维码
PHPqrCode是一个PHP二维码生成类库,利用它可以轻松生成二维码,官网提供了下载和多个演示demo, 查看地址:http://phpqrcode.sourceforge.net/. 下载官 ...
- Linux 利用busybox制作根文件系统
busybox版本:1.17.3 官网下载路径:https://busybox.net/downloads/ 网盘下载路径:https://pan.baidu.com/s/1nvrEa73 密码:7y ...
- Unit02: Servlet工作原理
Unit02: Servlet工作原理 点击注册按钮,返回注册信息 package web; import java.io.IOException; import java.io.PrintWrite ...
- Java中的强制类型转换
例如,当程序中需要将 double 型变量的值赋给一个 int 型变量,该如何实现呢? 显然,这种转换是不会自动进行的!因为 int 型的存储范围比 double 型的小.此时就需要通过强制类型转换来 ...
- Win10 TensorFlow(gpu)安装详解
Win10 TensorFlow(gpu)安装详解 写在前面:TensorFlow是谷歌基于DistBelief进行研发的第二代人工智能学习系统,其命名来源于本身的运行原理.Tensor(张量)意味着 ...
- [Java][Web]Web 工程中的各类地址的写法
// 1. request.getRequestDispatcher("/index.html").forward(request,response); // 以 / 开头,对于浏 ...
- JSch基本使用
JSch基本使用 JSch 是SSH2的一个纯Java实现.它允许你连接到一个sshd 服务器,使用端口转发,X11转发,文件传输等等.你可以将它的功能集成到你自己的 程序中.同时该项目也提供一个J2 ...
- 编译hostapd时,出现错误:/usr/bin/ld: cannot find -lnl
book@ubuntu:/work/project/wifi/04.hostapd/hostapd-2.0/hostapd$ make /usr/bin/ld: cannot find -lnl co ...