首页 > 其他分享 >keycloak~为微信二维码添加动态kc认可的动态state

keycloak~为微信二维码添加动态kc认可的动态state

时间:2024-07-29 10:30:23浏览次数:11  
标签:kc redirect 微信 uri state client 动态 id keycloak

本实例将通过keycloak社区登录实现微信二维码的登录,并且二微码不是keycloak动态生成,而是通过微信提供的js生成的,在页面上直接输出的方式实现的。

动态state

在Keycloak中使用微信二维码登录时,state参数确实是由后端生成的,并且用于确保登录过程的安全性,防止CSRF攻击等。如果你尝试在前端写死state值或者在前端生成,可能会导致一些安全和整合问题,正如你在parseSessionCode方法中遇到的错误。

前端代码,生成keycloak的state

  • 格式:session_code.tab_id.client_id
  • js方法生成state
<script src="${url.resourcesPath}/script/wxLogin.js"></script>
<script>

var client_id = "${client_id!''}";
var redirect_uri = "${redirect_uri!''}";
if (redirect_uri.indexOf("?") > 0) {
    redirect_uri = redirect_uri + "&client_id=" + client_id;
} else {
    redirect_uri = redirect_uri + "?client_id=" + client_id;
}
let decodedLoginUrl = '${p.loginUrl}'.replace(/&amp;/g, '&');
var stateValue = getQueryVariable(decodedLoginUrl, "session_code") + "." + getQueryVariable(decodedLoginUrl, "tab_id") + "." + getQueryVariable(decodedLoginUrl, "client_id")
new WxLogin({
    href: "https://static.test.com/statics/css/wechatimgregister.css",
    self_redirect: false,
    id: "wechatImg",
    appid: "${weixinAppId}",
    scope: "snsapi_login",
    redirect_uri: "${weixinCallback}?redirect_uri=" + redirect_uri,
    state: stateValue,
    style: "black",
    info: "${msg("weixinPrompt")}"
});

</script>
  • 当我们使用上面的keycloak认可的state之后,就可以把回调地址也设置成keycloak默认生成的callback地址了,并且keycloak的第一认证流登录后流程也是可以直接使用的。

标签:kc,redirect,微信,uri,state,client,动态,id,keycloak
From: https://www.cnblogs.com/lori/p/18329571

相关文章

  • 仿微信im源码开源部署/社交聊天即时通讯im源码[PHP+uniapp]/直播+PC+安卓+IOS
    在数字化时代,即时通讯(InstantMessaging,IM)已成为人们日常生活中不可或缺的一部分,无论是工作协作、社交互动还是日常交流,IM应用都扮演着至关重要的角色。从早期的ICQ、MSN到如今的微信、WhatsApp、Telegram等,IM技术不断演进,为用户提供了更加丰富、便捷、安全的沟通体验。本文旨在......
  • 基于 SASL/SCRAM 让 Kafka 实现动态授权认证
    一、说明在大数据处理和分析中ApacheKafka已经成为了一个核心组件。然而在生产环境中部署Kafka时,安全性是一个必须要考虑的重要因素。SASL(简单认证与安全层)和SCRAM(基于密码的认证机制的盐化挑战响应认证机制)提供了一种方法来增强Kafka集群的安全性。本文将从零开始部署......
  • 【Python学习手册(第四版)】学习笔记06-Python动态类型-赋值模型详解
    个人总结难免疏漏,请多包涵。更多内容请查看原文。本文以及学习笔记系列仅用于个人学习、研究交流。主要介绍Python的动态类型(也就是Python自动为跟踪对象的类型,不需要在脚本中编写声明语句),Python中变量和对象是如何通过引用关联,垃圾收集的概念,对象共享引用是如何影响多个变量......
  • Flask 是否有使用 Sqlalchemy 的动态查询生成器?
    一个简单的查询如下所示User.query.filter(User.name=='admin')在我的代码中,我需要检查正在传递的参数,然后根据参数过滤数据库中的结果。例如,如果User表包含像username这样的列、位置和电子邮件,请求参数可以包含其中之一,也可以包含列的组合。我不想像下面这样检......
  • 【愚公系列】《微信小程序开发解析》008-表单组件
    ......
  • 动态内存管理(含经典笔试题)
    文章目录1.为什么要动态内存分配2.malloc和free2.1malloc2.2free3.calloc和realloc3.1calloc3.2realloc4.常见的动态内存的错误4.1对NULL指针的解引用操作4.2对动态开辟空间的越界访问4.3对非动态开辟内存使用free函数释放4.4使用free释放一块动态开辟......
  • 如何从零搭建一个动态网站
    静态网站和动态网站的区别        静态网站和动态网站的本质区别在于内容是否在服务器端动态生成,以及是否有服务器端逻辑处理用户请求和数据。        静态网站像是一本已经印刷好的书籍,而动态网站则像是根据读者需求即时编写和提供内容的智能机器。创建......
  • Spring Boot 使用Apollo动态调整日志级别
    摘要:在SpringBoot项目中,借助Apollo动态修改配置的能力,结合Logback修改日志级别打印执行的SQL脚本。综述  在生产环境偶现测试环境未发现的SQL查询BUG,但由于线上关闭debug和trace级别日志导致缺少执行SQL、异常堆栈等日志信息,没有办法火速定位问题根源。面对这样的线上问题,通......
  • 国内AI育种近期动态
    近期,可以看到,AI育种入局者越来越多,产品、报告、论文、会议、新闻也越来越多,这是好事,大家一起把蛋糕做大。(点击标题链接,查看详情)华智生物联合多家单位启动生物育种大模型计划7月5日,在2024世界人工智能大会暨人工智能全球治理高级别会议期间,中信农业旗下华智生物联合中国农业科学......
  • AI智能名片商城微信小程序:重塑消费场景与商品设计的创新实践
    摘要:在全球经济环境日益复杂多变的背景下,商家面临着成本上升、利润压缩的严峻挑战。然而,消费者对于高品质生活与高性价比商品的追求并未因此减弱,反而催生了新的消费场景与消费模式。本文深入探讨了AI智能名片商城微信小程序如何成为商家应对市场变化、重塑消费场景、设计创新商......