[详细的微信授权登陆 demo]

news/2024/7/5 8:13:52

目录

前言: 

Java实现微信授权登录的步骤如下:

生成授权链接,让用户点击该链接进行授权。可以使用WeixinService的getAuthorizeUrl方法来生成授权链接:

其中,redirectUrl是用户授权后跳转的链接,snsapi_userinfo表示获取用户的基本信息,state是自定义参数。

完整代码:

依赖:

前端实现:


前言: 

     记录小笔记,分享小dmeo,希望对你有帮助,可以点个赞哦

Java实现微信授权登录的步骤如下:

  • 在微信公众平台上创建应用程序,并获取应用程序的AppID和AppSecret。

  • 在Java中,使用第三方库来实现微信授权登录。常用的库有Weixin Java Tools、Wechat SDK等。

  • 在代码中,创建WeixinService对象,并设置AppID和AppSecret:

WeixinService weixinService = new WeixinService();
weixinService.setAppId("your_app_id");
weixinService.setAppSecret("your_app_secret");

生成授权链接,让用户点击该链接进行授权。可以使用WeixinService的getAuthorizeUrl方法来生成授权链接:

String redirectUrl = "http://your_redirect_url";
String authorizeUrl = weixinService.getAuthorizeUrl(redirectUrl, "snsapi_userinfo", "state");

其中,redirectUrl是用户授权后跳转的链接,snsapi_userinfo表示获取用户的基本信息,state是自定义参数。

  • 用户点击授权链接后,会跳转到微信授权页面。用户在该页面上输入微信账号密码并授权后,会跳转回redirectUrl指定的链接。在该链接中,可以获取到用户的授权信息。

  • 在redirectUrl指定的链接中,使用WeixinService的getUserInfo方法来获取用户的基本信息:

String code = request.getParameter("code");
WeixinUser user = weixinService.getUserInfo(code);
  • 其中,code是微信授权页面返回的授权码,user是包含用户基本信息的WeixinUser对象。
  • 最后,可以使用获取到的用户信息进行后续操作,例如将用户信息保存到数据库中。

完整代码:

WeixinService weixinService = new WeixinService();
weixinService.setAppId("your_app_id");
weixinService.setAppSecret("your_app_secret");

String redirectUrl = "http://your_redirect_url";
String authorizeUrl = weixinService.getAuthorizeUrl(redirectUrl, "snsapi_userinfo", "state");

// 用户点击授权链接后跳转到redirectUrl指定的链接
String code = request.getParameter("code");
WeixinUser user = weixinService.getUserInfo(code);

 
String code = request.getParameter("code");
if (code != null && !code.isEmpty()) {
    // 获取用户信息
    WeixinUser user = weixinService.getUserInfo(code);
    if (user != null) {
        // 将用户信息保存到数据库中
        saveUserInfo(user);
        // 跳转到登录成功页面
        response.sendRedirect("http://your_login_success_url");
    } else {
        // 获取用户信息失败,跳转到登录失败页面
        response.sendRedirect("http://your_login_fail_url");
    }
} else {
    // 用户未授权,跳转到微信授权页面
    response.sendRedirect(authorizeUrl);
}

依赖:

<dependency>
    <groupId>com.github.binarywang</groupId>
    <artifactId>weixin-java-tools</artifactId>
    <version>3.4.0</version>
</dependency>
 

前端实现:

  1. 在前端页面中,添加一个按钮或链接,让用户点击该按钮或链接进行微信授权登录。

  2. 在按钮或链接的点击事件中,跳转到后台生成的授权链接:

如下:

// 前端页面中的按钮或链接

<button οnclick="authorize()">微信授权登录</button>

<script>

function authorize()

{

// 跳转到后台生成的授权链接

window.location.href = "http://your_authorize_url";

} </script>


http://lihuaxi.xjx100.cn/news/1197892.html

相关文章

Qt中的窗口类及其特点

目录 常用的窗口类 窗口的显示内嵌窗口 QWidget内嵌窗口演示 QWidget不内嵌窗口演示 QDialog类型的窗口特点 QMainWindows窗口的特点 总结 常用的窗口类 常用的窗口类有 3 个 在创建 Qt 窗口的时候&#xff0c;需要让自己的窗口类继承上述三个窗口类的其中一个QWidget 所有…

【是德出品,必属精品】示波器探头的11个误解

误解1. 100 MHz 的“信号”&#xff0c;使用 100 MHz 的示波器探头。 示波器探头带宽与配合它们使用的示波器带宽采用相同的方法进行规定&#xff0c;即产品响应的 -3dB 点。举例来说&#xff0c;如果使用 100 MHz 带宽的探头测量 100 MHz 1Vpp 正弦波&#xff0c;那么探头输出…

STL-string-1

stoi int stoi (const string& str, size_t* idx 0, int base 10);int stoi (const wstring& str, size_t* idx 0, int base 10); Convert string to integer 解析str&#xff0c;将其内容解释为指定基数的整数&#xff0c;该整数作为int值返回。 如果idx不是空…

视频美颜sdk是什么?技术解析与实现原理详解

视频美颜技术的发展则为人们提供了一种美化自己的方式&#xff0c;因此&#xff0c;视频美颜技术成为了一个备受关注的领域。在这个领域中&#xff0c;视频美颜sdk技术则是实现高效美颜的关键因素之一。本文将从技术角度分析视频美颜sdk的实现原理和优势。 一、视频美颜技术的…

虚拟现实 VR 智慧办公室可视化

“虚拟现实”是来自英文“Virtual Reality”&#xff0c;简称 VR 技术&#xff0c;其是通过利用计算机仿真系统模拟外界环境&#xff0c;主要模拟对象有环境、技能、传感设备和感知等&#xff0c;为用户提供多信息、三维动态、交互式的仿真体验。 图扑软件基于自研可视化引擎 H…

onnx模型转 ncnn 模型全连接层输出shape不对问题解决

1.简述 最近在把paddleocr 中cls分类模型通过ncnn部署框架部署时&#xff0c;发现onnx -> ncnn 模型的转换过程中出现问题。因为之前的项目都是使用ncnn框架部署的&#xff0c;只能去解决模型转换问题了。 2. 问题描述与分析 模型在onnx推理代码上正常&#xff0c;当把模型…

绝地求生 压q python版

仅做学习交流&#xff0c;非盈利&#xff0c;侵联删&#xff08;狗头保命) 一、概述 1.1 效果 总的来说&#xff0c;这种方式是通过图像识别来完成的&#xff0c;不侵入游戏&#xff0c;不读取内存&#xff0c;安全不被检测。 1.2 前置知识 游戏中有各种不同的q械&#xf…

这本数智平台白皮书讲透了大型企业数智化升级业务痛点

在以“升级企业数智化底座”为主题的2023用友BIP技术大会上&#xff0c;用友联合全球权威咨询机构IDC共同发布《建设数字中国 升级数智底座——企业数智化底座白皮书》&#xff0c;在这本数智平台白皮书里深入剖析了大型企业的数智化升级痛点。 大型企业普遍具有广域的业务覆盖…