微信扫码登录

//公共平台
    String appid = "";
    String appSecret = "";

    //公众号
    String mp_appid = "";
    String mp_appSecret = "";

    @GetMapping("/auth")
    @ApiOperation(value = "获取微信登录扫描二维码", httpMethod = "GET", notes = "获取微信登录扫描二维码", produces = "application/json")
    @ApiImplicitParams({@ApiImplicitParam(paramType = "query", name = "redirect", value = "重定向地址", dataType = "long", required = true)})
    @ResponseBody
    public View auth(@RequestParam String redirect, Model model, HttpServletRequest request, HttpServletResponse response) throws UnsupportedEncodingException {
        String url = "https://open.weixin.qq.com/connect/qrconnect?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect";
        url = url.replace("APPID", appid);
        String decode = URLDecoder.decode(redirect, "UTF-8");
        url = url.replace("REDIRECT_URI", decode);
        url = url.replace("SCOPE", "snsapi_login");
        url = url.replace("STATE", String.valueOf(System.currentTimeMillis()));
        model.addAttribute("code", 1);
        model.addAttribute("data", url);
        model.addAttribute("msg", "操作成功");
        return IWebUtils.JSON;
    }


    @PostMapping("/authLogin")
    @ApiOperation(value = "微信扫码登录", httpMethod = "GET", notes = "微信扫码登录", produces = "application/json")
    @ApiImplicitParams({@ApiImplicitParam(paramType = "query", name = "code", value = "微信code", dataType = "long", required = true)})
    @ResponseBody
    public View authLogin(@RequestParam String code, Model model, HttpServletRequest request, HttpServletResponse response) {
        String url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code";
        url = url.replace("APPID", appid);
        url = url.replace("SECRET", appSecret);
        url = url.replace("CODE", code);
        String result = HttpRequest.post(url).execute().body();
        JSONObject parsed = JSONObject.parseObject(result);
        String accessToken = parsed.getString("access_token");
        String openid = parsed.getString("openid");
        String unionid = parsed.getString("unionid");

        UserRmiVo userRmiVo = userRmiService.geUserByOpenId(openid);
        userRmiVo.setPassword(null);
        model.addAttribute("code", 1);
        model.addAttribute("data", userRmiVo);
        model.addAttribute("msg", "操作成功");
        return IWebUtils.JSON;
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Spring Boot框架是一种轻量级、开箱即用的Java开发框架,它大大简化了企业级应用的开发过程。要实现微信扫码登录,可以使用Spring Boot框架结合微信开放平台的API来实现。以下是实现微信扫码登录的步骤: 1. 注册微信开放平台账号并创建应用,获取AppID和AppSecret。 2. 创建Spring Boot项目并导入相关依赖,如web、httpclient等。 3. 在配置文件application.properties中配置微信开放平台的AppID和AppSecret。 4. 创建一个控制器,用于处理登录相关的请求。 5. 定义一个生成微信扫码登录链接的方法,该方法使用AppID、重定向URI和state等参数生成微信登录链接。 6. 在控制器中定义一个登录请求的接口,该接口返回生成的微信扫码登录链接。 7. 创建一个回调接口,用于处理微信登录成功后的回调请求。 8. 在回调接口中获取微信的授权code,通过code和AppID、AppSecret等参数向微信服务器发送请求,获取用户的唯一标识openid。 9. 将获取到的openid存储到数据库或Session中,表示用户已登录。 10. 在需要验证用户登录状态的接口中,通过openid验证用户是否已登录。 以上是使用Spring Boot实现微信扫码登录的基本步骤,通过控制器处理登录和回调接口,以及与微信服务器的交互,可以实现用户使用微信扫码登录系统的功能。当然,具体实现中还需要考虑安全性、数据持久化等问题,以及前端页面的设计和展示等方面的内容。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

缘不易

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值