MVC 4 OAuth:如何获取电子邮件地址

5
我正在开发一个MVC 4应用程序,并使用MS提供的OAuth提供程序,但我希望为每个用户获取一个电子邮件地址。对于Google(默认)和Facebook(使用FacebookClient),我已经获得了用户的地址,但以下情况该怎么办:
Twitter(我已经阅读过不可能 - 仍然是真的吗?) Microsoft - 已解决(参见注释) Yahoo - 可以工作(请参阅评论) LinkedIn - 通过自己的提供程序解决,就像为MS一样
如果像Twitter这样的OAuth无法实现,该怎么办? 我在不同的主题中读到,询问用户并不好/安全。如果我还要求通过电子邮件进行验证以实际使用地址(而不是通用帐户),这是否足够安全?

不是完整的答案,只是一个评论:http://msdn.microsoft.com/en-us/library/hh243648.aspx#user - Wiktor Zychla
@WiktorZychla:感谢您的提示-一些后续搜索让我找到了http://mvcdiary.com/2013/03/01/how-oauthsecurity-to-obtain-emails-for-different-oauth-clients-but-microsoft-client-doesnt-return-email-it-didnt-include-scope-wl-emails/,这为Microsoft账户解决了问题... - Christoph Fink
刚刚发现,如果你有一个 @yahoo.com 的电子邮件地址,雅虎可以“开箱即用”,而我之前没有(只有一个雅虎账户)... - Christoph Fink
据我所知,Twitter仍未回复电子邮件。 - Wiktor Zychla
1个回答

1
OAuth的目的不是提供电子邮件地址,而是以标准化的方式提供身份验证。仅仅因为许多实现也提供了电子邮件地址选项,并不意味着所有实现都必须遵守。Twitter就是一个例子。
询问用户的电子邮件地址为什么不安全呢?我会对此提出质疑,我的意思是,如果您不能相信用户输入他们的电子邮件地址,那么您还能信任他们什么呢?如果您使用某种确认邮件系统,那肯定没问题吧?

3
如果用户输入了一个无效的电子邮件地址,那么会显示“不安全”,但是当OAuth提供商提供它时,我可以认为它是正确的(对于用户来说,不再输入也更容易)。对于其他情况,我已经进行了确认,但是正如所说的那样,这对用户来说并不容易... - Christoph Fink

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接