首頁 >後端開發 >php教程 >像segmentfault或知乎这样的注册账号后不激活无法提问是如何实现的?

像segmentfault或知乎这样的注册账号后不激活无法提问是如何实现的?

WBOY
WBOY原創
2016-06-06 20:27:251973瀏覽

是在用户表里加个字段,每次要提问时都查询一下么?

回复内容:

是在用户表里加个字段,每次要提问时都查询一下么?

简单来说,是这样的。
你可以参考Leancloud的默认用户表,看下图,一个字段存邮箱地址(string),一个字段存邮箱是否验证过(bool)。
然后每次提问的时候就去查一下emailVerified字段是否为false。

像segmentfault或知乎这样的注册账号后不激活无法提问是如何实现的?

在提问操作提交之后,先检测该用户的激活字段,True就允许,False就拦截

这就是很基本的权限验证啦,可能是一个bool,当然更加可能是一个整形或者整形中的某个位,猜测 seg 的权限等级用一个一个整形,权限级别可能划分为好多个段,可以参考这里:
http://segmentfault.com/repu?_ea=109887

撰写一个权限控制类
在控制类里面扩展方法

用户状态:0刚注册成功 1已验证 2封号
只有用户状态为1的才可以正常提问

我猜测,很可能就是数据库中的一个字段,status 里面就固定未激活。已激活等等状态,根据状态有一定的权限,然后登录后能做某些事,未激活的一点击提问就提示去绑定邮箱激活吧,
看了楼下的答案,我想到了就是用户登录后会把用户信息存到session中而不是每次用到的时候去查询数据库

肯定是在数据库一个字段表示验证状态,可为整形值或布尔值。
至于读取这个值,估计是放在系统的缓存中直接读取,而不是每次都要重新查询。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn