生成动态URL

时间:2013-03-15 16:33:11

标签: java java-ee

我有一个使用我们网站提供的功能之一的各公司的用户列表。每当他们联系我们的业务组时,我们都需要通过电子邮件向请求者发送网址,以便他们上传一些数据。所有这些外部用户都没有任何专用帐户。但是,我们不希望向他们提供静态链接,因为任何人都可以通过互联网访问它。我们希望生成动态链接。这通常是做什么的吗?是否有行业接受的方式?我们是否应确保动态链接在一定时间后过期 - 如果是,是否有任何设计选项?

非常感谢!

3 个答案:

答案 0 :(得分:2)

通常,参数到网址而非实际网址是动态的。基本上,您生成存储在某处的params,通常在数据库中,并使用url和参数发送电子邮件。此网址仅在有限的时间段内有效,可能仅适用于一个请求。

问题答案:

  • 是的,这是非常常用的内容,例如,从邮件列表取消订阅或验证具有工作电子邮件地址的帐户
  • 我不知道任何单一的方式是“行业接受”,有很多方法可以做到这一点,但这个想法并不复杂 - 你只需要决定合适的令牌格式
  • 通常您应该确保链接在一定时间后过期。取决于可能是几天,一周或其他的用例。实际上,您将删除或禁用数据库中生成的参数。但是,如果这些数据可能需要很长一段时间,您可能需要考虑一个功能,以便以后可以检索它。

答案 1 :(得分:1)

您可能有一个静态URL,将令牌作为参数。例如。 http://www.mycompany.com/exchange/<UUID>http://www.mycompany.com/exchange?token=<UUID>

UUID可以在一个时间范围内具有有效性,或仅限于一次使用(一次访问或一次上传)。

答案 2 :(得分:1)

其他变体是在Web浏览器中使用该站点上的存在cookie(当然,如果它们是)。
但是这个解决方案有一些缺点:
用户可以在不同的机器,不同的浏览器中打开链接。用户可以清除所有Cookie,也可以在用户尝试使用授予的URL时上次访问您的网站后过期。在这些情况下,用户将无法访问您的页面。