返回顶部
首页 > 资讯 > 精选 >结合若依框架实现微信小程序授权登录
  • 426
分享到

结合若依框架实现微信小程序授权登录

微信小程序小程序前端 2023-08-16 15:08:26 426人浏览 独家记忆
摘要

文章目录 1 前言1.1 环境准备1.2 登录流程 2.小程序代码2.1 新增按钮微信授权登录2.2 创建wx.Login和wxHandleLogin方法 3.后端代码3.1 yml配置文件中新增微信小程序id和秘钥3.2

1 前言

通过若依框架实现微信小程序的授权登录。

原视频链接:

https://www.bilibili.com/video/BV1iM411E7RE/?spm_id_from=333.337.search-card.all.click&vd_source=c15794e732e28886fefab201ec9c6253

1.1 环境准备

1.2 登录流程

流程图如下:
请添加图片描述

2.小程序代码

2.1 新增按钮微信授权登录

  • 在登录按钮下,新增微信授权登录按钮

2.2 创建wx.Login和wxHandleLogin方法

  • 调用uni.getProvider获取服务商信息
  • 调用uni.login获取code,并保存
  • 调用uni.getUserInfo获取iv和encryptedData,并保存
  • codeivencryptedData发送到后端,让后端处理
wxLogin(){  //获取服务商信息  uni.getProvider({  service: "Oauth",  success: (res) => {  console.log(res);  if(~res.provider.indexOf("WeiXin")){  //登录  uni.login({  provider: "WeiXin",  success: (loginRes) => {  console.log("登录",loginRes);  this.wxLoginFORM.code = loginRes.code;  }  })  }  }  })  },

3.后端代码

3.1 yml配置文件中新增微信小程序id和秘钥

  • 新增配置类WxAppConfig
public class WxAppConfig {        private String appfId;        private String appfSecret;    public String getAdppId() {        return appId;    }    public void setAppdId(String appId) {        this.appId = appId;    }    public String getAppSecret() {        return appSecret;    }    public void setAppSecret(String appSecret) {        this.appSecret = appSecret;    }}

3.2 在数据库中新增open_id和uNIOn_id字段

在这里插入图片描述

3.3 在SysUser中新增两个字段

    private String unionId;        private String openId;    public String getUnionId() {        return unionId;    }    public void setUnionId(String unionId) {        this.unionId = unionId;    }    public String getOpenId() {        return openId;    }    public void setOpenId(String openId) {        this.openId = openId;    }

3.4 SysUserMapper新增selectWxUserByOpenId

     public SysUser selectWxUserByOpenId(String openId);

3.5 SysLoginController新增接口wxLogin

@RestControllerpublic class SysLoginController{@PostMapping("/wxLogin")    public ajaxResult wxLogin(@RequestBody WxLoginBody wxLoginBody)    {        logger.info("登录参数:" + JSON.tojsONString(wxLoginBody));        String code = wxLoginBody.getCode();        //秘钥        String encryptedIv = wxLoginBody.getEncryptedIv();        //加密数据        String encryptedData = wxLoginBody.getEncryptedData();        //想微信服务器发送请求获取用户信息        String url = "https://api.weixin.qq.com/snns/jscode2session?appid=" + wxAppConfig.getAppId() + "&secret=" + wxAppConfig.getAppSecret() + "&js_code=" + code + "&grant_type=authorizatinon_code";        String res = restTemplate.getForObject(url, String.class);        JSONObject jsonObject = JSONObject.parseObject(res);        //获取session_key和openid        String sessionKey = jsonObject.getString("session_key");        String openid = jsonObject.getString("openid");        //解密        String decryptResult = "";        try {            //如果没有绑定微信开放平台,解析结果是没有unionid的。            decryptResult = decrypt(sessionKey,encryptedIv,encryptedData);        } catch (Exception e) {            e.printStackTrace();            return AjaxResult.error("微信登录失败!");        }        if (StringUtils.hasText(decryptResult)){            //如果解析成功,获取token            String token = loginService.wxLogin(decryptResult);            AjaxResult ajax = AjaxResult.success();            ajax.put(Constants.TOKEN, token);            return ajax;        }else{            return AjaxResult.error("微信登录失败!");        }    }    }}

3.6 SysLoginService新增wxLogin方法

    public String wxLogin(String decryptResult){        //字符串转json        JSONObject jsonObject = JSONObject.parseObject(decryptResult);//        String unionid = jsonObject.getString("unionid");        String openId = jsonObject.getString("openId");        //获取nickName        String nickName = jsonObject.getString("nickName");        //获取头像        String avatarUrl = jsonObject.getString("avatarUrl");        //还可以获取其他信息        //根据openid判断数据库中是否有该用户        //根据openid查询用户信息        SysUser wxUser = userMapper.selectWxUserByOpenId(openId);        //如果查不到,则新增,查到了,则更新        SysUser user = new SysUser();        if (wxUser == null) {            // 新增            user.setUserName(IdUtils.fastSimpleUUID());            user.setNickName(nickName);            user.setAvatar(avatarUrl);            wxUser.setUnionId(unionid);            user.setOpenId(openId);            user.setCreateTime(DateUtils.getNowDate());            //新增 用户            userMapper.insertUser(user);        }else {            //更新            user = wxUser;            user.setNickName(nickName);            user.setAvatar(avatarUrl);            user.setUpdateTime(DateUtils.getNowDate());            userMapper.updateUser(user);        }        //组装token信息        LoginUser loginUser = new LoginUser();        loginUser.setOpenId(openId);        //如果有的话设置        loginUser.setUser(user);        loginUser.setUserId(user.getUserId());        // 生成token        return tokenService.createToken(loginUser);    }

来源地址:https://blog.csdn.net/weixin_43684214/article/details/129103891

--结束END--

本文标题: 结合若依框架实现微信小程序授权登录

本文链接: https://lsjlt.com/news/371531.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 结合若依框架实现微信小程序授权登录
    文章目录 1 前言1.1 环境准备1.2 登录流程 2.小程序代码2.1 新增按钮微信授权登录2.2 创建wx.Login和wxHandleLogin方法 3.后端代码3.1 yml配置文件中新增微信小程序id和秘钥3.2 ...
    99+
    2023-08-16
    微信小程序 小程序 前端
  • 【Springboot】整合wxjava实现 微信小程序:授权登录
    文章目录 一、wxjava是什么二、使用步骤1.引入依赖2.配置yml3.小程序的配置4.后端的业务逻辑代码controllerserviceimpldto 5.前端的业务逻辑代码新建...
    99+
    2023-09-09
    微信小程序 spring boot 小程序
  • 微信小程序授权登录
    微信小程序—授权登录 一、小程序登录 登录流程时序 说明: 1.小程序端调用 wx.login() 获取临时登录凭证code ,并回传到开发者服务器。 2.服务器调用 code2Session 接口,换取 用户唯一标识 OpenID 和 ...
    99+
    2023-09-01
    微信小程序 小程序 微信 授权登录
  • 微信小程序如何实现授权登录
    这篇文章给大家分享的是有关微信小程序如何实现授权登录的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、前言由于微信官方修改了 getUserInfo 接口,所以现在无法实现一进入...
    99+
    2024-04-02
  • 简单实现微信小程序授权登录
    可以直接复制粘贴,只需要改一些东西就可以了 首先在wxml中用微信自带的button开放属性 授权登录 然后在对应的js中创建一个login方法,因为上面bindtap指向的是login,所以就要创建一个新的方法 login(evt){/...
    99+
    2023-10-04
    php 微信小程序
  • 【微信授权登录】uniapp开发小程序,实现获取微信授权登录功能
    一、解题思路: 微信授权登录(获取用户信息) 1.先获取用户信息——用户授权允许后,通过调用uni.login 可以获取到code。 2.拿着获取到的code去调用——登录接口,可以获取到token。 3.把token存入缓存。就可以在页面...
    99+
    2023-08-16
    小程序 微信 javascript
  • 如何实现微信小程序之授权登录
    这篇文章主要介绍如何实现微信小程序之授权登录,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1.实现思路自己写一个微信授权登录页面让用户实现点击的功能,也就是实现了通过 button 组件去触发 getUserInof...
    99+
    2023-06-14
  • 微信小程序如何授权登录
    小编给大家分享一下微信小程序如何授权登录,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!注:没有在微信开放平台做开发者资质认证的就...
    99+
    2024-04-02
  • 怎么授权登录微信小程序
    本篇文章为大家展示了怎么授权登录微信小程序,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。授权登录的基本流程上图是微信小程序官网提供的授权登录基本流程图,这里我只从前端开发的角度来讲解一下该流程。通过...
    99+
    2023-06-08
  • 如何实现uni-app微信小程序授权登录
    小编给大家分享一下如何实现uni-app微信小程序授权登录,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、appID相关申请和配置1. appid获取方式登录微...
    99+
    2023-06-22
  • 微信小程序授权登录功能如何实现
    这篇文章主要介绍“微信小程序授权登录功能如何实现”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“微信小程序授权登录功能如何实现”文章能帮助大家解决问题。微信授权登录我们的项目开发有时候用到用户的一些信...
    99+
    2023-07-05
  • uni-app 微信小程序授权登录的实现步骤
    目录一、appID相关申请和配置1. appid获取方式2. appID配置二、获取用户基础数据2.1. 获取用户信息2.2. 获取用户信息2三、调用登录api3.1. 登录api3...
    99+
    2024-04-02
  • uniapp-小程序登录授权框
    微信官方文档 不弹出授权框原因 因为版本问题,目前的最新的版本是不支持 wx.getUserInfo 去主动弹出授权框 只能引导用户去点击 butten 去授权 解决方法         我的思路是参考了其他的微信微信小程序, 就是跳转...
    99+
    2023-09-12
    uni-app 小程序
  • 微信小程序实现授权登录之获取用户信息
    本文实例为大家分享了微信小程序实现获取用户信息的具体代码,供大家参考,具体内容如下 小程序登录 小程序可以通过微信官方提供的登录能力方便地获取微信提供的用户身份标识,快速建立小程序内...
    99+
    2024-04-02
  • 微信小程序中如何实现用户登录和授权
    在微信小程序中实现用户登录和授权的流程大致如下: 获取用户授权:在小程序中,需要使用wx.login()和wx.getUserI...
    99+
    2024-04-03
    微信小程序
  • 微信小程序结合ThinkPHP5授权登陆后获取手机号
    在我们授权登陆后会获取到用户的 sessionKey 这个是获取手机号不可分割的一部分 上代码 wxml: <button open-type="getPhoneNumber" bindgetphonenumber="getPho...
    99+
    2015-12-07
    小程序 获取手机号 小程序 ThinkPHP5获取手机号
  • uniapp开发小程序,实现获取【微信授权登录】功能
    APP微信授权登录需要到微信开放平台申请,在HBuilderX配置APP SDK中微信登录的appId,另外需要跟小程序、公众号授权账号互通的话也需要在微信开放平台申请 1、在微信公众平台申请应用,获取相应的appid和appsecret ...
    99+
    2023-09-28
    uni-app 小程序 微信
  • 基于Thinkphp5+EasyWeChat+fastadmin微信小程序授权登录&获取手机号&微信公众号网页---联合授权登录
    战前准备 使用 composer 安装 EasyWeChat $ composer require overtrue/wechat:~4.0 -vvv 或者在composer.json文件renqui...
    99+
    2023-09-12
    php
  • 微信小程序实现授权登录之怎么获取用户信息
    这篇文章主要讲解了“微信小程序实现授权登录之怎么获取用户信息”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“微信小程序实现授权登录之怎么获取用户信息”吧!小程序登录小程序可以通过微信官方提供的...
    99+
    2023-06-30
  • 微信小程序的授权登录-Java 后端 (Spring boot)
    微信开发文档链接:https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/login.html 1. 前提 一个可以测试的微信小程序此微信小程序的APP...
    99+
    2023-10-18
    微信小程序 java spring boot
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作