在我的应用程序中,我有URI,其中包含用于标识用户私有资源的用户标识。用户标识是电子邮件,例如:
/users/user2@example.com/private-resource
将电子邮件放入URI中是一种很好的做法,包括.
和@
等字符?
或者我应该使用其他类型的用户ID?就像哈希一样?
答案 0 :(得分:4)
如果电子邮件可以作为fixed identifier运行,那就没问题了。
事情是,大多数时候应用程序将允许用户更改电子邮件;在这种情况下,自己控制ID空间将更具防弹性,例如使用surrogate key。 (因为电子邮件(如果用户可以更改它们)不是身份,而只是资源的属性。)
反对电子邮件的另一个论点是 - 正如@Rob所指出的 - 一个潜在的安全问题。
答案 1 :(得分:1)
没有问题......只需确保对相应的字符进行URL编码。
(电子邮件的敏感信息,但是,您可能希望传递哈希或代理密钥,而不是仅仅为了保护用户的电子邮件地址,如果网址传播的话。)
答案 2 :(得分:0)
虽然有' - '在uri绝对没问题。 使用' @' ,'#'不鼓励
但是,只要电子邮件ID是id,例如http://example.org/user/mail/ {电子邮件} / 1234 猜猜那好。