SpringBoot 实现App第三方微信登录(后端)
1.准备工作
2.授权流程说明
3. 获取access_token时序图:
4. maven依赖
<dependency> <groupId>commons-httpclient</groupId> <artifactId>commons-httpclient</artifactId> <version>3.0.1</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-io</artifactId> <version>1.3.2</version> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.4</version> </dependency> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.3.2</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.38</version> </dependency>
5.在application.yml文件中配置你的
创建配置类
import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component; @Component @ConfigurationProperties(prefix="weixinconfig") public class WeixinLoginProperties { private String weixinappID; // 商户appid private String weixinappSecret; // 私钥 pkcs8格式的 public String getWeixinappID() { return weixinappID; } public void setWeixinappID(String weixinappID) { this.weixinappID = weixinappID; } public String getWeixinappSecret() { return weixinappSecret; } public void setWeixinappSecret(String weixinappSecret) { this.weixinappSecret = weixinappSecret; } }
6.第一步:请求CODE
这一步客户端会把code传过来 ,不用你操心
7.第二步:通过code获取access_token
获取第一步的code后,请求以下链接进行refresh_token:
刷新或续期access_token使用
获取用户个人信息(UnionID机制)
工具类
package io.renren.common.utils; import java.util.HashMap; import java.util.Map; /** * 返回数据 * * @author chenshun * @email sunlightcs@gmail.com * @date 2016年10月27日 下午9:59:27 */ public class R extends HashMap<String, Object> { private static final long serialVersionUID = 1L; public R() { put("code", 0); put("msg", "success"); } public static R error() { return error(500, "未知异常,请联系管理员"); } public static R error(String msg) { return error(500, msg); } public static R error(int code, String msg) { R r = new R(); r.put("code", code); r.put("msg", msg); return r; } public static R ok(String msg) { R r = new R(); r.put("msg", msg); return r; } public static R ok(Map<String, Object> map) { R r = new R(); r.putAll(map); return r; } public static R ok() { return new R(); } @Override public R put(String key, Object value) { super.put(key, value); return this; } }
上一篇:
uniapp开发微信小程序-2.页面制作
下一篇:
怎么去开发一款软件?