我被要求在没有用户名和密码的情况下执行身份验证,我有哪些选择?

时间:2011-10-06 14:20:49

标签: php javascript apache authentication

我被要求将密码和用户名放在一边,因为大多数网站访问者都是停止购买 - 回来 - 几个月后的访问者,而且他们的动机有点像他们一样会忘记任何方式的密码,并且必须要求新的密码“。

我怀疑没有现实的方法让我这样做,认为IP:可能会改变,浏览器会更新,cookie会被清除等等。

或者我有任何选择吗?

(不是我正在寻找代码而是概念和伪,但项目中的语言是php / js与apache服务器相结合)

6 个答案:

答案 0 :(得分:8)

使用OpenID

让Facebook,Google,Wordpress,甚至Stack Exchange为您处理身份验证,人们不必记住另一个密码。


可替换地:

许多用户现在都了解“忘记了我的密码;检查我的电子邮件”例程,所以为什么不通过让他们输入他们的电子邮件并向他们发送带有随机生成的令牌登录的登录URL来进行简短的操作。

一旦他们登录,只要您认为安全,就让他们登录。

答案 1 :(得分:3)

我们在电子商务解决方案中执行以下操作:

我们使用电子邮件作为唯一标识符。

当客户使用同一电子邮件进行购买时,订单将附加到其现有用户。但是,您不会获得任何地址详细信息或类似的内容,但必须手动输入。

如果是第一次购买,客户将收到一封包含生成密码的电子邮件。如果是第二次购买,他们将被指示登录。但是,这可以与URL和登录令牌组合。同样,对于登录站点,您可以让他们输入电子邮件来接收登录URL令牌。

将其与长生存cookie和/或浏览器数据存储相结合,以记住客户详细信息(地址和类似内容)。

另一个选择是让他们进入他们自己总能知道的事情,但其他人不会。然而,很难有一个国际上可行的解决方案。

答案 2 :(得分:1)

您可以使用所谓的supercookies,它是客户端的离线存储。要么通过html5离线存储,要么像flash这样的插件来恢复已删除的cookie。虽然,这些cookie很可能在某些时候被禁止,因为它们主要是为用户隐藏的,而且很难摆脱。 (不推荐这种方法,只是说它是可能的)

答案 3 :(得分:1)

身份验证凭据分为三个选项;

  • 你知道的东西 - 密码
  • 你拥有的东西 - 物理钥匙,卡片
  • 你是什么 - 虹膜,视网膜和其他生物识别技术

你能做的最好的就是使用我认为的饼干。或者......我想你可以让他们下载一个文件,并将该文件作为他们的访问凭证上传 - 与cookie相同,但不太可能被删除。你必须仔细考虑将什么放入文件中 - 他们的用户ID不够,因为它很容易被黑客入侵。一个随机的长字符串可以做,一个在他们的帐户中保存到数据库中。没有什么是可以预测的,也没有什么可以用来猜测不同帐户的凭证。

答案 4 :(得分:0)

我想到了几个选项:

  • 使用persistent cookie,但与SSL一起执行此操作(因此无法通过网络嗅探)

  • 另一种选择就像你在这里使用OpenID一样 - 因此游客可以使用他们经常使用的帐户登录你的网站。

答案 5 :(得分:-1)

在我看来,你唯一的选择是给他们一个永远的cookie,并希望它不会在访问之间被清除。

您可以阅读here