微信小程序--登录

本文详细介绍了如何准备小程序申请所需的材料,包括经营许可证、身份证等,并概述了小程序上线所需HTTPS域名。核心部分展示了开发者如何通过auth.code2Session接口获取用户OpenID和session_key的登录流程及关键代码片段。
摘要由CSDN通过智能技术生成

准备的材料

申请小程序

  • 经营许可证
  • 身份证
  • 对公账户或
  • 邮箱(没有注册过小程序/公众号等)

小程序上线

  • HTTPS域名

登录

流程图

在这里插入图片描述

  • 开发者服务器调用 auth.code2Session 接口,换取 用户唯一标识 OpenID 、 会话密钥 session_key

代码展示

/**
 * 小程序登录
 *
 * @return
 */
@PostMapping("/applet/login")
public AjaxResult appletLogin(@Param("code") String code) {
    AjaxResult ajaxResult = new AjaxResult();
    String result = "";
    String openId = "";
    try {
        result = HttpUtils.sendGet("https://api.weixin.qq.com/sns/jscode2session",
                String.format("appId=%s&secret=%s&js_code=%s&grant_type=%s",
                        appletConfig.getAppId(),
                        appletConfig.getAppSecret(),
                        code,
                        "authorization_code"));

        Map<String, String> appletResult = JSON.parseObject(result, new TypeReference<Map<String, String>>() {
        });
        openId = appletResult.get("openid");

        // 判断该用户是否存在
        if (StringUtils.isEmpty(openId)) {
            return AjaxResult.error(HttpStatus.ERROR, "网络不稳定,请联系管理员或稍后重试");
        }
        String unique = sysUserService.checkOpenIdUnique(openId);
        if (UserConstants.UNIQUE.equals(unique)) {
            // 插入用户
            SysUser sysUser = new SysUser();
            sysUser.setUserName("BJ" + System.currentTimeMillis());
            sysUser.setNickName("BJ" + System.currentTimeMillis());
            sysUser.setOpenId(openId);
            sysUserService.insertUser(sysUser);
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
    ajaxResult.put(Constants.OPEN_ID, openId);
    // 授权代码省略...
    return ajaxResult;
}

AjaxResult是封装的结果类

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值