二维码是市场宣传的一个重要工具,对于用户交互来说直观简便。二维码对应的url往往是一一对应的,但实际企业/组织应用中随着时间的变化,经办人等客观因素的变化,url往往出现了变化,这对于已经印刷或公布在外的二维码是一种浪费,更重要的会给市场宣传带来影响。如何解决这个问题?
解决这个问题来使用短链接就是一个很好解决路径。举例:
https://xfu.biz/C9r6 生成二维码,这里的短链接地址https://xfu.biz/C9r6和二维码图片是不变的,但短链接对应的真实URL地址:https://www.w3school.com.cn/jquery/jquery_hide_show.asp是可以随意进行更换的,重新进行绑定的。
URL的组成格式: protocal://hostname[:port]/path/[;parameters][?query][#fragment]
这里又会碰到一个问题,一般网提供的短链接服务是无需登录的,也就是任何人可以针对任何真实URL来生成短链接及对应二维码。如何确保此短链接及其二维码进行重新绑定新的真实URL是授权或授意的呢?这里就引出一个短链接及其对应二维码的认领归属问题。毫无疑问解决归属问题是针对注册用户而言,经过归属认领的用户可以URL的重新绑定。
注册用户,实现短链接及对应二维码的认领归属其实是通过真实URL对应主域名(根域名/一级域名)的归属认证来实现的。举例:
https://xfu.biz/C9r6 及其二维码,对应真实地址:https://www.w3school.com.cn/jquery/jquery_hide_show.asp。
针对其主域名w3school.com.cn(非www.w3cschool.com.cn)系统自动生成_dnaauth.xfunction:txt:随机码的临时记录(缓存保留30分钟),要求用户在其域名解析中增加一条对应的TXT记录后,再由系统解析DNS 。若解析结果与缓存记录一致,即判断此主域名属于此用户。
至此,系统中此域名的所有真实URL对应的短链接和二维码都将属于该用户,也就是该用户拥有针对这些资源的再次绑定真实URL。
如何在hostname中提取主域名,这里也是问题,网路上有很多这方面的正则表达式解说,但多数在域名后缀上考虑不完整。推荐 https://github.com/lupomontero/psl 这个项目。
以上归属认领方案还是放弃了,主要是其限定在其所有域名内使用,降底了使用范围。
还是引入注册登录用户的背景,原数据结构中,主要字段仅biz_link_id,biz_link_url。
再增加biz_user_id, 可以为null,同时与biz_link_url组合成唯一索引。
如此针对注册登录用户就可以对属于自己的短链接及其二维码进行重新绑定了。
以上目前仅是思路,拟打算在xfunction-html中实现。
已经实现具体请查看项目xfunction-html