我正在研究openid和dotnetauthentication库。不过我仍然有一些突出的问题。
返回的ID对每个用户来说都是唯一的?我可以将此id作为userId存储在数据库中(当前此字段是主键和唯一标识符)
我读到您可以尝试请求电子邮件地址等信息,但您可能不会将其提供给您。如果您需要这些信息,会发生什么?
如果我必须立即弹出另一个字段并询问他们的电子邮件地址以及我需要的任何其他字段,我认为这有点糟糕。似乎有点打败了目的,因为我一直认为openid的好处是你不必填写注册表。
我正在考虑这个问题,因为如果他们输入的提供商不能提供我需要的信息,那么它会回到第2点,然后卡住了。
答案 0 :(得分:0)
Rob Conery有一篇很棒的博客文章,从第一手经验和经验教训中探索Open ID主题。博客评论包括Jeff Atwood(Stack Overflow)和其他人的反馈。对于没有Open ID风险的技术资源来说,这是一个很好的阅读。
答案 1 :(得分:0)
ClaimedIdentifier
是您应该与每个用户关联的唯一ID,并在用户返回时用于查找。它并没有像一些人似乎相信的那样“不断变化”。如果您的Google用户和您的域名发生了变化,是的,您从Google获得的声明ID将会发生变化。因此,请勿更改您的域名(或更具体地说,您向Google报告的“域名”),您将没事。
某些用户和某些提供商不希望将其电子邮件地址上交。最好的方法(IMO)是您不要坚持让用户给您一个电子邮件地址,但是当他们想要在您的网站上做一些您需要电子邮件地址的事情时,请求它。如果提供商为您提供了一个电子邮件地址(如果您已经做了所有正确的事情),那么您可以跳过该步骤。如果他们不这样做,那么,与使用OpenID之前相比,你并没有变得更糟。但严重的是,在我看来,的OpenID的主要卖点并非它预先填写了注册表格。这是因为它使您的用户更安全。
有关此问题的讨论,请参阅Is OpenID Worth It?。