「我的收藏」、个人设置、改删操作,以及任何会暴露他人数据的接口。
自己试一次:未登录、没权限、允许
打开「我的收藏」。切换身份与权限,再点「访问私有收藏」。重点看:拒绝文案有没有把「请登录」和「没权限」说成同一句,以及允许时有没有越界返回别人的数据。
场景:打开「我的收藏」。切换访客/用户、勾选权限,再点唯一主按钮「访问私有收藏」。观察拒绝原因有没有把「未登录」和「没权限」说成同一句。
未登录,无需登出。先点「访问私有收藏」看怎么拦。
还没检查。点「访问私有收藏」看系统怎么判。
未操作:当前是访客、未授权。下一步:点「访问私有收藏」预测系统怎么拦——身份未确认应先要求登录。对照:先猜结果再点,看你的预期是否一致。
知识点:authentication 与 authorization 的分工
面板里刚操作过的两步,对应两个常被混为一谈的词。
- authentication · 确认你是谁
用密码 / OTP / 生物特征等「因素」证明你是某个用户(例如用户 #42)。通过后把身份交给 session 或 token 带着走。访客没做过这一步,所以「你是谁」未知。
- authorization · 确认你能做什么
已经知道你是用户 #42,再判断「#42 能不能读这份数据」。读自己的收藏、改设置、看别人的数据,各自单独放行;登录不等于全能。
- 两个拒绝不要糊成一句
未登录 → 引导去登录并带回调;已登录无权 → 说明权限边界并给下一步。允许时只返回当前用户范围内的数据,不靠前端藏按钮代替服务端过滤。
什么时候该拦,什么时候别误伤
鉴权保护私有数据与写操作;公开浏览不该被登录墙误伤。
公开教程列表、落地页可以匿名看;需要登录时只拦私有入口,并说清原因。
同一件事:正例与反例
目标都是打开「我的收藏」。差异只在:两种拒绝有没有分开说,以及允许时有没有越界返回别人的数据。
访客访问 →「请先登录,登录后回到这里」。已登录但无权 →「你没有读收藏权限」,并提示申请或回公开页。允许时只返回自己的两条收藏。
身份失败与权限失败分流;允许范围不越界。一律弹「无法访问」;或前端藏了按钮,接口仍把别人的收藏一并返回;登出后旧页面还能继续刷出私有列表。
用户分不清下一步;数据边界被绕过。应在服务端重检并立刻失效。快速自测
已登录但没有读收藏权限时,最合适的做法是?
继续查证
术语的技术定义和行为以这些一手或权威资料为准。
下一步学
和本知识点经常一起出现的概念。