当前位置: 首页 > 后端技术 > Node.js

基于Githubissues+umi搭建免费博客评论(一)

时间:2023-04-03 13:54:48 Node.js

作为一名工作多年的前端搬砖狗,搭建一个属于自己的博客是很有必要的,这样你就可以总结一下自己的开发学习心得,其次可以分享和记录自己的学习轨迹,可以说好处多多,所以今天给大家介绍一种新的博客搭建方式。??为什么选择Githubissues而不是其他方式?其实在使用Githubissues搭建博客之前,我也尝试过其他方式搭建自己的博客平台。最早的时候,我买了一个云服务器,买了一个域名,搭建了一个博客系统,但是发现每次管理博客都很麻烦。后来做了一个博客后台管理系统,方便自己管理博客。这种方法具有很高的自由度。您可以根据自己的想法,对自己的博客系统进行美化改造。缺点也很明显。每个人每月的服务器租用费用也是一笔不小的开支,时间长了就会放弃。后来也尝试用hexo框架搭建了一个博客,挂载到github.io上。这种方式不需要自己租服务器,可以部署在Github上,但是也有一些缺点。比如自定义能力比较差,只能基于Hexo提供的一些模板来创建自己的博客,博客的评论功能也不是很完善。虽然也可以基于一些第三方插件来实现,比如“SpeakMore”,但是稳定性不是很强,使用起来比较麻烦,最后放弃了。Githubissues有以下优势:前后端自然分离借助Github提供的API接口,我们可以很方便的进行数据交互,比如获取issues列表数据,给issue点个赞,以及commentingonanissue(惊喜地发现这样可以实现博客的评论操作?)。多种接口调用方式Github贴心地为开发者提供了两种接口调用方式,RESTAPIv3接口和GraphQLAPIv4接口,您可以根据需要使用不同的调用方式。Githubissues支持Markdown语法,支持tag问题。现在大多数人写博客都是基于Markdown语法。Github问题内置了对Markdown语法的支持。同时,对于每一期,你都可以设置一个对应的标签(Label),甚至可以自定义标签的颜色。在这里不得不说一下Github真的是为大家考虑周全?Github提供了用户基本信息Github提供了获取用户的接口。用户使用Github账号登录后,可以获得用户的基本信息,包括用户名、头像、坐标、邮箱等,以便我们展示这些基本信息。?了解GithubApp什么是GithubApp?前面我们提到,基于Github提供的API,我们可以做很多事情,但是很多接口是不能直接调用成功的,必须提供认证信息才能调用成功。这里要用到GithubApp,那么什么是GithubApp呢?可以参考GithubApp官方声明。简单来说,GithubApp提供了一种认证方式。用户创建一个GithubApp,设置Github提供的功能和权限,然后将这个App安装到某个仓库中,这样仓库就可以获取GithubApp提供的所有信息。授予相应的操作权限。为GitHubApp识别和授权用户当我们的GithubApp代表用户向服务器发起请求时,这些请求必须使用用户的accesstoken进行授权,主要包括以下三个步骤(具体可参考GithubApp授权processhere):UserareredirectedtorequesttheirGitHubidentityUserareredirectedbacktoyoursitebyGitHub你的GitHubApp使用用户的访问令牌访问API第1步:你需要跳转到Github指定的授权页面进行授权。授权请求地址为:https://github.com/login/oauth/authorize这是一个Get请求,请求时必须带上以下参数:nametypedescriptionclient_idstringrequired。创建GithubApp时生成的客户端ID。redirect_uristring是必需的。要重定向到的地址。授权成功后,会重定向到该地址,并在URL中返回授权码。需要注意的是这里的重定向地址必须和我们创建GithubApp时填写的用户授权回调URL一致。.状态字符串是可选的。防止伪造攻击的随机数字串。登录字符串是可选的。建议使用特定帐户登录和授权应用程序。第二步:Github重定向回指定的回调URL。授权成功后,Github会重定向到上一步的回调URL。同时会在地址栏中带上code参数的授权码。接下来,我们需要通过这个Authorizationcode来获取Token。获取授权码后,向该地址发送POST请求获取Token:https://github.com/login/oauth/access_token该请求还有一些参数需要传递:nametypedescriptionclient_idstringrequired。创建GithubApp时生成的客户端ID。client_secretstring是必需的。创建GithubApp时生成的客户端密码。代码串必填。上一步获取的授权码。redirect_uristring是可选的。成功授权后重定向URL。状态字符串是可选的。第一步传入的随机数。请求成功后会得到如下返回结果:access_token=e72e16c7e42f292c6912e7710c838347ae178b4a&token_type=bearer这个请求会出现跨域问题,后面会教大家如何解决这个问题。第三步:使用获取到的Token请求GithubAPI以上两步都成功完成后,现在我们就可以使用获取到的Token调用对应的GithubAPI了。以上就是一个完整的授权获取数据的流程,下面就来介绍一下如何创建一个GithubApp。?创建GithubApp在Github首页点击用户头像,选择设置菜单,点击Developer设置菜单,即可进入GithubApps操作页面,点击新建GithubApp按钮,即可进入创建GithubApp页面Github应用程序。填写GithubAppname、HomepageURL、UserauthorizationcallbackURL。注意,因为是开发阶段,所以我这里填写的用户授权回调URL地址是我本地开发环境的地址,实际上线后需要换成github.io地址。然后需要设置相关权限,因为我们使用Issues作为博客的数据源,所以需要勾选Allowreadandwriteoperations。接下来,你还可以根据自己的需要设置一些其他的权限,比如订阅事件。当有人评论你的Issues时,Github会自动通过邮件通知你。这个比较实用,方便大家编辑Issues随时回复。单击创建Github应用程序按钮以完成Github应用程序的创建过程。运行成功后,可以看到完整的GithubApp信息:?安装GithubApp前面提到,创建的GithubApp也必须安装到相应的仓库中,才能在调用API时获得相应的权限设置。在新建的GithubApp页面,选择左侧的InstallApp菜单,然后选择你的账号进行安装。在这里你可以选择安装所有仓库或者选择一个指定的仓库进行安装。至此,关于使用GithubApp获取GithubAPI相关操作权限的部分就全部结束了。以下是我的公众号二维码图片,欢迎关注。