如何在不使用用户 ID 的情况下为用户定义唯一的 URL?

How can I define a unique URL for a user without using their ID?

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

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

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

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

编辑评论 - 以下是您在 URL 中使用哈希 ID 时可能遵循的过程:

假设我们使用哈希 ID 为用户配置文件创建 links。当我们生成包含配置文件 link 的页面时,我们的应用程序将:

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

如果站点访问者单击 link,应用程序将收到请求并且:

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