【第三方登录】微信web扫一扫登录步骤
创始人
2025-01-16 17:05:31
0次

目录

  • 目的
  • 特别说明
  • 要求
  • 前端
  • 后端
  • 总结

目的

实现用微信扫一扫,登录网站
微信官网文档:微信接口文档

特别说明

截止与2023年10月26日前,微信登录需要在 “微信开发平台” 绑定第三方应用或网站,然而,注册、认证、绑定网站走完才能用这个微信扫码登录功能,注意:需要一次性交300元的认证费。一般来说只有企业才做这样的事情,如果是个人建议看看就行。
步骤如下图所示:

要求

注册一个“微信开发平台”账号、认证账号、绑定一个网站。(三个要求)
如下所示:
在这里插入图片描述

打开如下:注意这个回调域名,要和前端vue上的一致
在这里插入图片描述

前端

在vue的index.html文件中添加

                    

登录页面,记得redirect_uri要与上面微信开放平台的域名一致

// Login.vue     

页面会出现一个二维码
在这里插入图片描述

后端

    @GetMapping("/getUnionid")     public AjaxResult getUnionid(@RequestParam("code") String code) {         String ParamAppid = "appid=" + wxProperties.getAppid();         String ParamSecret = "secret=" + wxProperties.getSecret();         // 用户授权码         String ParamCode = "code=" + code;         String url = "https://api.weixin.qq.com/sns/oauth2/access_token?grant_type=authorization_code&" + ParamAppid + "&" + ParamSecret + "&" + ParamCode;         String forObject = restTemplate.getForObject(url, String.class);         JSONObject jsonObject = JSONObject.parseObject(forObject);          if (jsonObject != null) {             try {                 String access_token = jsonObject.get("access_token").toString();                 String openid = jsonObject.get("openid").toString();                 WXUserInfo wxUserInfo = getWXUserInfo(access_token,openid);                 HashMap hashMap = new HashMap<>();                 hashMap.put("wxUserInfo", wxUserInfo);                 return AjaxResult.success("操作成功", hashMap);             } catch (Exception e) {                 return AjaxResult.error();             }         }         return AjaxResult.error();     }      /**      * 获取微信用户详情信息      * @param access_token  用户凭证      * @param openid        用户id      * @return              微信用户实体类      */     private WXUserInfo getWXUserInfo(String access_token,String openid) {         WXUserInfo wxUserInfo = new WXUserInfo();          String wx_url = "https://api.weixin.qq.com/sns/userinfo?lang=zh_CN&access_token=" + access_token + "&openid=" + openid;         String ob = restTemplate.getForObject(wx_url, String.class);          JSONObject job = JSONObject.parseObject(ob);         // 封装实体类         if (job != null) {             wxUserInfo.setOpenid(job.get("openid").toString());             wxUserInfo.setNickname(job.get("nickname").toString());             wxUserInfo.setSex(job.get("sex").toString());             wxUserInfo.setLanguage(job.get("language").toString());             wxUserInfo.setCity(job.get("city").toString());             wxUserInfo.setPrivilege(job.get("province").toString());             wxUserInfo.setCountry(job.get("country").toString());             wxUserInfo.setHeadimgurl(job.get("headimgurl").toString());             wxUserInfo.setPrivilege(job.get("privilege").toString());             wxUserInfo.setUnionid(job.get("unionid").toString());         }         return wxUserInfo;     } 

总结

第一步,用户同意微信登录后,获取code
第二步,拿着code可以获取openid、unionid、access_token
第三步,拿着openid和access_token可以获取用户基本信息;

后端能拿到个人信息,其实就已经完成了,接下来就看具体的个人业务需求了。祝君工作顺利!

相关内容

热门资讯

实测交流透视挂!宝玛大厅ai智... 实测交流透视挂!宝玛大厅ai智能透视挂教程,宝玛大厅破解软件经验(本来有挂辅助)1、每一步都需要思考...
总算了解辅助器!朱雀吴江三缺一... 总算了解辅助器!朱雀吴江三缺一ai智能透视辅助挂技巧,朱雀吴江三缺一好像是有挂(有辅助挂细节)朱雀吴...
今日公布透视!九五至尊大厅ai... 今日公布透视!九五至尊大厅ai智能透视插件,九五至尊大厅有没有透视挂窍门(切实有挂技术)1、在九五至...
玩家必看科普开挂!聚闲麻将ai... 玩家必看科普开挂!聚闲麻将ai智能透视辅助挂软件,聚闲麻将总是真的有挂(有辅助挂方式)聚闲麻将能透视...
据报道开挂!旅游娱乐ai智能开... 据报道开挂!旅游娱乐ai智能开挂工具,旅游娱乐辅助工具演示(一直有挂教学)1、全新机制【旅游娱乐ai...
一分钟揭秘开挂!决胜朋来麻将a... 一分钟揭秘开挂!决胜朋来麻将ai智能透视辅助挂教程,决胜朋来麻将真是真的是有挂(有辅助挂总结)1、首...
如何分辨真伪透视!红牛ai智能... 如何分辨真伪透视!红牛ai智能透视攻略,红牛是不是有挂经验(真是有挂技术)1、操作简单,无需红牛手机...
2分钟细说辅助器!江湖大庆麻将... 2分钟细说辅助器!江湖大庆麻将ai智能透视辅助挂攻略,江湖大庆麻将竟然是真的有挂(有辅助挂头条)1、...
总算清楚透视挂!老夫子厅ai智... 总算清楚透视挂!老夫子厅ai智能透视挂技巧,老夫子厅怎么开挂课程(好像发现有挂)老夫子厅破解侠是真的...
解密关于辅助!菜鸟麻将ai智能... 解密关于辅助!菜鸟麻将ai智能透视辅助挂脚本,菜鸟麻将总是存在有挂(有辅助挂存在)1、用户打开应用后...