【问题标题】:How can I define a unique URL for a user without using their ID?如何在不使用用户 ID 的情况下为用户定义唯一 URL?
【发布时间】:2018-03-05 20:55:55
【问题描述】:

大家晚上好,所以我想知道 jsfiddle.net 如何将页面内容保存在唯一的 url 中?例如:jsfiddle.net/u5jm5jq8。我想知道如何用 javascript 做到这一点。因为您不一定非要登录才能保存和生成唯一的 url。

【问题讨论】:

    标签: javascript php url hash jsfiddle


    【解决方案1】:

    这被称为 散列 ID,这是一个唯一标识符,通常由一个唯一属性(如数据库中实体的主键)生成。散列 ID 通常比由 MD5 或 SHA-256 等加密散列算法创建的典型散列短,并且与这些不同,散列 ID 通常是可逆的,这意味着我们可以解码原始值。它们减少了应用程序内部实现的暴露,从而提高了安全性。

    查看hashids.org。该站点提供各种编程语言的实现。

    除非您有充分的理由不这样做,否则请避免在客户端中生成哈希 ID。通过在服务器上创建哈希 ID,您可以保证 ID 是唯一的,并且与应用程序存储数据所使用的任何机制所使用的标识符一致。

    编辑评论 - 以下是在 URL 中使用哈希 ID 的过程:

    假设我们使用哈希 ID 来创建指向用户配置文件的链接。当我们生成一个包含个人资料链接的页面时,我们的应用程序将:

    1. 将用户 ID(例如 5)转换为哈希 ID(例如 3ac4jx60
    2. 显示带有http://example.com/user/3ac4jx60 之类的链接的页面

    如果网站访问者点击该链接,应用程序将收到请求并且:

    1. 解码URL中的hash ID得到用户ID(3ac4jx605
    2. 使用用户 ID 获取相应的记录并显示用户的个人资料

    【讨论】:

    • 谢谢。但是页面的内容是如何保存在具有该唯一 id 的 url 中的呢?你可以用一个例子来展示它的实现。
    • 页面内容没有在 URL 中编码,只有标识要在页面上显示的数据的值。例如,在保存 JSFiddle 时,该站点使用 ID 将代码保存在数据库中,然后将该 ID 编码为哈希 ID 以供公众使用。当用户访问小提琴 URL 时,站点将哈希 ID 解码回数据库 ID。我更新了我的答案来说明这个过程。
    猜你喜欢
    • 2011-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-19
    • 1970-01-01
    相关资源
    最近更新 更多