Gitalk 评论踩坑
起因
我的博客关于页面没有开通评论,就想给文章开通评论区,点击登录功能发现,GitHub 登录总是失败。
初步解决
找到对应的 GitHub 仓库,Issue 区往往能找到一些有效答案。
gitalk中用到的 cors-anywhere.herokuapp.com 这个网站原本是用来演示用的,但是现在已经被滥用了。
从2021.1.31开始用户必须手动先访问这个网站获取临时的访问权限,然后才能使用,作者建议开发者自己维护一个代理网站。
在gitalk的issue中看到别人分享的一个在线代理,先拿来用下
1 |
|
我用的是zhaoo主题,在布局模板中找到代理gitalk.ejs文件,如果其他模板可以搜索gitalk关键字应该也能找到差不多的代码。
在模板里加上proxy配置和在主题的_config.yml文件上也加上proxy配置:
1 |
|
重新部署后发现依然有问题。
查看了对应请求的应答码 429,表示请求太多,我个人估计是白嫖这个在线代理的人太多导致的。
既然白嫖的代理不能用,那我们就自己搭一个在线代理吧。
解决方法(一)
此方法国内被墙了,还可以使用 Vercel 免费部署node.js项目解决跨域问题,你可参考该项目 (https://github.com/Dedicatus546/cors-server) 最新推荐使用,此处就不在累述。
参考文章
利用CloudFlare Worker创建在线代理,不需要我们有服务器,也不需要搭建Node.js服务,只需要注册一个CloudFlare账号,创建一个Worker,部署一个JS脚本就可以了,简单方便,下面我们就来看看如何创建吧。
首先你需要一个 CloudFlare 的账号,如果还没有的话就先注册一个吧:点我注册
选择Workers,创建一个免费的Worker。
免费版本每天10万次请求也足以应对个人使用或者是小范围分享了。
填写自己喜欢的二级域名,然后创建worker。
进入github项目的 index.js,复制代码。
清除脚本编辑器中的示例代码,将复制的代码粘贴进去。
1 |
|
修改好之后,点击 保存并部署,如果部署正常的话,我们就可以使用我们创建的在线代理了。
从右侧获取到你的worker域名并记下来,在上面提到_confix.yml文件的proxy配置项修改为如下代码:
1 |
|
一定要注意连接的地方,要加?,不然会出现no access token的错误
还有一个点要注意的是,如果还是有问题,index.js文件可以使用:
1 |
|
重新部署我们的博客,再次点击 使用Github登录,这次登录成功,没有报错。
至此,个人在线代理就搭建成功了,博客的评论功能也能正常使用了,撒花!!!
解决方法(二)
使用Nginx做一个请求转发服务器 ,在nginx配置文件中加入
1 |
|
前端请求是https://xxx/github/login/oauth/access_token,
而实际请求是https://github.com/login/oauth/access_token,所以解决了跨域问题。
Gitalk配置代理,proxy: /github/login/oauth/access_token
- 本文作者:樱白 - Cherry White
- 本文链接:https://cherry-white.github.io/posts/4ae00516.html
- 版权声明:本博客所有文章均采用 BY-NC-SA 许可协议,转载请注明出处!