晚睡拖延症 2020-07-22 23:42:57 8973次浏览 8条评论 0 1 3

先附上博客网站域名 https://www.laoziaite.top
git源码 https://github.com/AIjugg/changye_blog

现在只做好了最基本的功能,还有挺多地方需要完善的,希望大家能提出建议,我迫切地想要成长😄

登录

目前支持注册方式账号密码、手机、邮箱,但登录只能账号密码(我的免费手机短信只有两百条,能省就省,哈哈)。之后想加入github登录,微信登录貌似并不行,qq登录还没有了解。

权限管理

由于我这里的权限实在是简单,只有游客、普通用户、管理员,我一开始自己改造了一下ACF就开始用了。
后来琢磨着为了以后扩展,还是用rbac-0吧,但我实在是偷懒,不想为了角色-权限分配再写页面,最后就做成了rbac-0 加 ACF的权限管理。rbac-0中的用户、角色、用户-角色表都不变,但权限、权限-角色表被我省去了,角色和权限的关系写死在了ACF里。

这么偷懒的代价是,之后每次加功能,都得在behaviors中加一个rules

限流

在yii2官方文档里,看到了限流(Rate Limiting),看了下源码,由于我这前后端分离了,源码用不了了,那好吧,自己改造一下。
yii源码中的限流方法其实是计数器限流,而我更倾向于令牌桶算法,于是我用redis实现了令牌桶算法。具体是在beforeAction中根据ip限流,限制每分钟的总流量和每个用户流量。
由于我的服务器性能太差,我限制了每个用户每分钟请求20次。
对了,限流还可以用在验证上,我在手机注册验证里,限制了每个ip发短信的频率……

数据统计

类似站长统计这样的功能,我之前做了一个简单的浏览网页计数,现在弃用了,想改进一下,之后应该会做成图表类,曲线图这样直观的形式。
浏览统计的方法,是先在redis中计数,用ubuntu的crontab每隔五分钟执行yii2 console中指令,将数据记录到mysql中。

博客

编辑器用的vue-quill-editor,不是特别好用,有bug并且网上资料不多。
编辑博客为了防止自己忘记保存,做了个自动保存草稿的功能(目前只有管理员可以编辑博客)
登录的用户可以点赞和评论博客,游客则不可以。

消息通知

暂时还没做,功能是将与用户相关的评论、点赞以通知消息的形式反馈给用户。
用redis消息队列,保存点赞、评论的相关信息,用console指令读取消息,更新点赞、评论数,同时将消息插入到数据库。

先写到这里把

觉得很赞
您需要登录后才可以评论。登录 | 立即注册