一级访问路由中,如何避免业务路由和唯一用户名的冲突

oulaly 发布于 2017/05/02 11:57
阅读 123
收藏 0

每个用户都有一个的唯一id,这个id是用户注册时自定义的,把这个id作为一级路径可以直接访问用户的个人主页;同时系统中还有其他相关业务逻辑通过一级路由访问。如何来避免用户注册的id与业务一级路径不冲突。

如微博:

个人主页 http://www.weibo.com/oschina2010

我的分组 http://www.weibo.com/mygroups
我的收藏 http://www.weibo.com/fav
我的赞 http://www.weibo.com/like

如果我注册的id是mygroups,那访问http://www.weibo.com/mygroups,就访问不了我的主页。

这种路径只在web中有,但注册来源除了web还有app。如果web检查过滤,app不能限制。

加载中
1
b
bingtel

换子域名呗

oulaly
oulaly
回复 @bingtel : -_-|
b
bingtel
回复 @oulaly : 设计问题……程序背锅么
oulaly
oulaly
的确可以。不过还是想找到在程序中解决的办法。
0
oulaly
oulaly

没人遇到过类似的问题吗?

0
孤单的不同世界
孤单的不同世界
转义字符,即同一id被浏览器解析和服务器解析是连个不同的结果
oulaly
oulaly
都是服务器要处理的controller,也不存在特殊字符可以转义
0
某刀
某刀

把其它业务逻辑设计成二级路由,跳过这个问题;比如:http://www.weibo.com/mygroups/like。某种程度上还挺 RESTful 的

oulaly
oulaly
其他逻辑都二级路由,感觉不太合理
0
尚浩宇
尚浩宇

偷懒的办法是把业务一级路径全部加入唯一验证,只要输入就提示已被使用(猜测osc就是这么干的)。

 

oulaly
oulaly
验证是web要做的,不过app并不关心这点,这样app的数据没法控制。 osc是用的子域名。
返回顶部
顶部