跳到主要内容

登录知乎

目前 Zhihu on Obsidian 有三种登录方式,它们是:网页登录(Web login)、二维码登录(QRCode login)、手动登录(Manual login)。

网页登录(推荐)

打开 Obsidian 的命令面板,通常快捷键是 Ctrl+P 或者 Command+P。输入Zhihu: Web login,会发现有一个知乎网页端的弹窗出现。

zhihu-weblogin

打开手机知乎扫一扫左边的二维码,在手机端点击确认,确认后网页会自动跳转,跳转到一个回答或者文章页面。耐心等待一切完成后,弹窗会自动关闭

二维码登录

打开 Obsidian 的命令面板,通常快捷键是 Ctrl+P 或者 Command+P。输入Zhihu: QRCode login,会发现有一个知乎二维码的弹窗出现。

zhihu-QRCode-login

打开手机知乎扫一扫左边的二维码,在手机端点击确认。确认完成后即可登录。

网页登录与二维码登录

二维码登录会比网页登录少很多cookie信息,因此只能发文章、发回答。而不能浏览知乎。因此桌面端更推荐使用网页登录。

手动登录

手动登录适合网页登录失效的情况,类似 Zhihu on VSCode 目前的状况。手动登录看似步骤多,但原理很简单:知乎通过 cookie 来判断登录状态,所以只要把浏览器的 cookie 放入插件内就可以了。

首先进入知乎,随便点进一个回答或者文章,浏览器按F12打开控制台。

允许粘贴

第一次打开控制台时,浏览器会阻止你粘贴代码,需要手动输入允许粘贴

在控制台输入下面的JavaScript代码

JSON.stringify(
Object.assign(
{},
...document.cookie.split("; ").map((c) => {
const [key, ...rest] = c.split("=");
const value = rest.join("=");
return { [key]: decodeURIComponent(value) };
}),
),
null,
2,
);

f12

将得到的结果复制。再进入插件设置,打开 手动编辑cookies

enable-cookies-editor

将上面复制的 JSON 放入编辑器中。

上面获取的 是 unsecured 的 cookie。还有一个 cookie 是 HttpOnly 的,非常重要但是不能被 Javascript 获取,因此只能手动获取。下面是各个浏览器的获取方式:

在知乎网页端的控制台中,点击存储。在 cookie 列表中搜索 z_c0,复制其值。 z_c0-cookie

最后将复制后的 z_c0 值放入 cookie 编辑器中。

{
"SESSIONID": "xxx",
"JOID": "xxx",
...
"z_c0": "xxx" // 放入刚刚复制的JSON中
}

cookie-refresh

点击刷新,如果看到设置中出现了自己头像,说明登录成功。

移动端登录

插件理论上同时支持桌面端和移动端。但是由于移动端的种种限制,插件无法自动获取 cookie。所以需要通过上述步骤手动获取 cookie

目前推荐的方式有两种

  • 打开“手动编辑cookie”选项,将桌面端中的 cookie 复制到移动端,点击刷新按钮即可完成登录。
  • 使用 iCloud 或者 OneDrive 等同步服务,将移动端和桌面端的笔记存储库同步,也可以自动完成登录。