Amazing!在CSDN官方插件里面,嵌入“自动签到”插件,自此再也不用手动签到

每天都登录 CSDN,但是总是忘记签到,虽然签到也抽不到奖,但是先签了再说。
本款插件实现了,只要当天打开 CSDN 任意一篇文章,后台默认自动签到。

在这里插入图片描述

梳理插件逻辑

手动签到逻辑:
打开 https://i.csdn.net/#/user-center/draw?type=reward,点击签到按钮。

自动签到逻辑:

  1. 找到签到接口,查看请求接口与请求参数;
  2. 通过 jQuery 模拟请求;

逻辑梳理清楚之后,就可以准备相关开发素材了:

抓取到的接口如下:
https://me.csdn.net/api/LuckyDraw_v2/signIn

抓取到参数格式如下:
payload,具体数据如下

{
  "product": "pc",
  "username": "你的ID",
  "ip": "",
  "user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:90.0) Gecko/20100101 Firefox/90.0",
  "platform": "pc-my",
  "uuid": "你的UUID"
}

数据请求格式如下:
POST

接口响应数据如下:

因为签到之后,我们不需要后续操作,所以响应内容可忽略。
在这里插入图片描述
隐藏逻辑
发送请求时,需要携带 cookie 信息,该 cookie 信息主要用于验证当前签到人是谁。

该类接口不好测试,因为每天只能签到 1 次,用完就要换号。

编码时间

逻辑整理完毕,可直接进入插件编写环节,本次依旧在CSDN 开发者工具中进行扩展,创建插件步骤直接参考官方说明即可。

插件匹配规则如下

*://*.csdn.net/*

插件增加外部资源如下

// 引入 jquery
https://cdn.bootcss.com/jquery/1.12.4/jquery.js
// 引入 jquery cookie,用于操作 cookie
https://cdn.bootcdn.net/ajax/libs/jquery-cookie/1.3.1/jquery.cookie.js

在这里插入图片描述
核心 JS 编写如下,相关说明,在注释与代码下方

(function () {
  // Your code here...
  // 获取cookie中的 uuid,用户标致
  uuid = $.cookie("uuid_tt_dd");
  // 获取cookie中的username
  name = $.cookie("UserName");
  // 用于每天请求一次签到地址
  is_signin = $.cookie("ca_is_signin");
  //console.log(is_signin);

  var expire = new Date();
  //console.log(expire.getTime());
  // 设置 cookie 失效时间为每日 23:55:00
  date_str = expire.toLocaleDateString() + " 23:55:00";

  var newdate = new Date(date_str);

  if (is_signin == null) {
    $.cookie("ca_is_signin", "yijingqiandao", {
      expires: newdate,
      path: "/",
      domain: "csdn.net",
    });
    // 请求注册
    $.ajax({
      type: "POST",
      url: "https://me.csdn.net/api/LuckyDraw_v2/signIn",
      contentType: "application/json;charset=UTF-8",
      xhrFields: {
        withCredentials: true,
      }, //该参数非常重要,缺失将无法成功签到
      data: JSON.stringify({
        product: "pc",
        username: name,
        ip: "",
        user_agent:
          "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36",
        platform: "pc-my",
        uuid: uuid,
      }),
      success: function (cb) {
        console.log("签到成功");
      },
    });
  } else {
    console.log("今天已经签到过了");
  }
})();

在签到请求中,有两个参数是签到者本人标志数据,其一是 username,其二是 uuid,二者可以通过 cookie 进行获取。

在后面的逻辑中,通过一个有失效时间的 cookie 去判断用户今日是否签到,该 cookie 为 ca_is_signin,如果该值为空,即未签到,否则为已签到。

该特定时间设置为每日的 23:55:00,即该时间点 cookie 失效。

$.ajax 请求为普通的请求,只是在请求时增加一个参数,即 xhrFields,并将该值中的 withCredentials 设置为 true,用于表示跨域请求带上 cookie,即抓取当前域下的所有 cookie ,一起发送到服务器端。

至此,该款插件研发完成,你具备了一款能自动签到的插件,只要当天你打开过 CSDN,默认就会签到。

写在后面

插件下载地址:https://plugin.csdn.net/plugin?pluginId=CSDNPlugin-54538234-1626751424012-43890936

今天是持续写作的第 187 / 200 天。
可以关注点赞评论收藏,拉进你我缘分。

更多精彩

评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梦想橡皮擦

如有帮助,来瓶可乐

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值