『浏览器』如何在vscode当中配置LeetCode插件( 二 )


但是你会发现登陆失败了 。
怎么回事 , 为什么失败了 , 难道是记错密码了吗?
于是你打开leetcode的网站又尝试了一下 , 发现密码没有记错 , 网页可以登陆 。
我们打开官网 , 会发现官方已经知道登陆失败的问题了 , 这是由于leetcode官网升级了登陆机制导致的 。
『浏览器』如何在vscode当中配置LeetCode插件
本文插图
但是leetcode只升级了国际版 , 对于国内的版本还没有升级 , 所以如果你使用的是国内的leetcode账号 , 那么我们只需要更换leetcode版本即可 。 更换的方式也很简单 , 点击上方地球形状的按钮进行选择即可:
『浏览器』如何在vscode当中配置LeetCode插件
本文插图
但是 , 我个人更推荐使用国际版 , 因为英文的题目描述会更加清楚 , 并且题目的更新也会更加及时 。 况且以后说不准中文版的leetcode也会升级登陆机制 , 到时候还是会面临无法登陆的问题 。
很遗憾的是 , 对于无法登陆这个问题 , 官方很坦率地承认了对于这个问题没有特别好的解决方法 , 只能使用cookie来绕开 。
cookie登陆
cookie在网站当中经常使用 , 我们可以简单地将它认为是一个标识身份的令牌或者说证书 。
我们都知道 , 现在的网站往往有自动登录机制 。 因为我们每打开一次都要用户输入一次账号密码实在是太反人类了 , 并且有时候我们打开多个相同网站中的不同站点 , 也会想要保持登录的状态 , 而不是再输入账号密码 。 cookie正是基于整个目的诞生的 。
cookie的原理也很简单 , 我们在登录网站成功之后 , 网站的服务器会根据我们的账号id或者是其他信息使用加密算法生成一串密文 。 并且将这串密文发送给浏览器 , 浏览器会将这串密文存储起来 , 这样下次浏览器在访问网站的时候 , 只需要携带上这串密文 , 网站拿到密文进行解密之后就能识别出这是哪一个用户 , 自动设置成已经登录的状态 , 并且返回对应的数据 。
因此cookie数据非常重要 , 它关乎我们许多账号的安全 。 如果我们的cookie被黑客获取 , 我们的账号都会面临被盗的风险 。 由于对称加密算法几乎不可攻破 , 所以目前许多针对浏览器账户的攻击手段都和cookie有关 。
我猜测登录问题出现的原因应该是leetcode官方人为限制了第三方插件通过账号密码代理登录 , 所以解决方法很简单 , 就是我们使用cookie来进行模拟登录 。
前期准备
由于leetcode插件底层是使用的leetcode-cli命令行工具 , 所以我们需要现在本地保证我们的命令行工具的版本正确 。
首先 , 我们需要安装Node.js 8以上的版本 , 关于Node.js的安装方法网上随便就能搜到 , 安装也很简单 , 这里就不赘述了 。
接着 , 我们通过npm工具安装最新版本的leetcode-cli:
# to remove the old versionnpm uninstall -g leetcode-cli# to install the up-to-date version(2.6.17+)npm install -g leetcode-tools/leetcode-cli
操作流程
首先 , 我们需要通过浏览器获取我们账号的cookie 。 下面以Google Chrome浏览器举例 。
我们先打开leetcode用我们自己的账号和密码登录 , 然后右击选择inspect:
『浏览器』如何在vscode当中配置LeetCode插件
本文插图
接着选择Network下的XHR:
『浏览器』如何在vscode当中配置LeetCode插件
本文插图
然后我们点击网站导航栏中的problems:
『浏览器』如何在vscode当中配置LeetCode插件