企业微信 js-sdk 签名认证

本文介绍了在SpringBoot+Redis+Nacos环境下,如何进行企业微信JS-SDK的签名认证,包括获取jsapi_ticket、nonceStr、timestamp、url等参数的详细步骤,以及签名的生成过程和代码实现。
摘要由CSDN通过智能技术生成

企业微信 js-sdk 签名认证

整体开发步骤:(springboot+redis+nacos)

1.首先找到企业微信API中关于JS-SDK的开发说明

链接附上:JS-SDK使用权限签名算法
这签名里插入图片描述从这个图片中我们看到生成签名需要四个参数 : jsapi_ticket、nonceStr、timestamp、url.下面我们分别说说这四个参数的获取.

2.参与签名的四个参数的获取

1.url:获取方式在下面的汇总代码里

2.timestamp: 获取方式在下面的汇总代码里

3.nonceStr:随机数,不重复就行,我这里使用的是UUID,各位看官,也可以按照自己的喜好生成随机数

4.jsapi_ticket:这个也是今天的重中之重

在这里插入图片描述从企业微信api的说明中我们知道jsapi_ticket的获取和access_token一样是有有效期,并且调用次数有限,需要缓存到自己的全局服务中的,为了满足这些要求,我们首先想到的是通过redis来实现.
在这里插入图片描述为了获取jsapi_ticket我们需要一个参数access_token。获取access_token的api链接:
获取access_token

3.获取到四个参数后 对参数按照api说明 拼接成一个完整的String,后对string进行sha1算法加密进行返回。完整代码如下:

@Slf4j
@AllArgsConstructor
@RestController
@RequestMapping("/JSApiTicketUtil")
public class JSTicketWxController {
    private final static String WORK_WECHAT_PREFIX = "wechat:work:secret:";
    private final TempUrlConfig workWechatConfig;
    private final RestTemplate restTemplate;
    private final StringRedisTemplate stringRedisTemplate;

    /**
     * 获取微信参数,因为前端传来的url为json形式,采用@ResponsBody来接收
     *
     * @param param
     * @return
     */
    @PostMapping(value = "/util")
    public AppResult<SignatureVo> getWechatParam(@RequestBody JSONObject param) {
        String urlStr = param.getString("url");
        SignatureVo signatureVo = new SignatureVo();
        String nonceStr = nonceStr();
        String timestamp = createTimestamp();
        String signature = getSignature(non
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值