JAVA实现微信授权登录(详解)

登录成功后可以看到测试用的appid和appsecret,稍后再后台我们要用到这两个ID,如下图 紧接着需要设置网页授权(体验接口权限表 —》 网页服务 —》网页帐号 —》 网页授权获取用户基本信息) 没有域名的话可以用内网穿透动态解析一个域名 注册登录成功后可以看到下图,选择免费隧道 购买免费的隧道之后,可以直接按照官方的一分钟教程完成内网穿透,这样我们就拿到了我们的域名 这个地方有一个坑,就是mac电脑通过下载之后,新建一个natapp目录,将压缩包移入解压,需要在新建一个config.ini文件,内容:

#将本文件放置于natapp同级目录 程序将读取 [default] 段
#在命令行参数模式如 natapp -authtoken=xxx 等相同参数将会覆盖掉此配置
#命令行参数 -config= 可以指定任意config.ini文件
[default]
authtoken=                      #对应一条隧道的authtoken
clienttoken=                    #对应客户端的clienttoken,将会忽略authtoken,若无请留空,
log=none                        #log 日志文件,可指定本地文件, none=不做记录,stdout=直接屏幕输出 ,默认为none
loglevel=ERROR                  #日志等级 DEBUG, INFO, WARNING, ERROR 默认为 DEBUG
http_proxy=                     #代理设置 如 http://10.123.10.10:3128 非代理上网用户请务必留空

将得到的authtoken填进去,authtoken在这个里 然后打开终端,进入该目录下,先执行

chmod a+x natapp

再执行

./natapp

运行成功就是下面这个界面了

⚠️:我们的端口号要与项目的端口号一致,例如:我们项目的端口号是8080,那么natapp中也要设置为8080 设置步骤:

第一步:先上工具类AuthUtil

public class AuthUtil {
          
   
	public static final String APPID = "wxf80f3f5e8c5a06bb";
    public static final String APPSECRET = "49ec132fa089a70916a4d90ff46bce90";

    //回调地址
    public static final String backUrl="http://zchhai.natappfree.cc/api/callBack";//如果你没有在application.yml文件中设置 context-path: /api,那么api就去掉
//    public static final String backUrl="http://localhost:8080/callBack";
    public static JSONObject doGetJson(String url) throws ClientProtocolException, IOException{
          
   
        JSONObject jsonObject = null;

        // 创建HttpClient实例
        HttpClient client =  HttpClientBuilder.create().build();
        // 根据URL创建HttpGet实例
        HttpGet get = new HttpGet(url);
        // 执行get请求,得到返回体
        HttpResponse response = client.execute(get);
        System.out.println(response);
        //从response里面拿自己想要的结果
        HttpEntity entity = response.getEntity();
        if(entity != null){
          
   
            String result = EntityUtils.toString((HttpEntity) entity,"UTF-8");
            jsonObject = jsonObject.fromObject(result);
        }
        //把链接释放掉
//        HttpGet.releaseConnection();
        return jsonObject;
    }
}

参数如下

最后

经验分享 程序员 微信小程序 职场和发展