关于身份验证的新手问题。我习惯于将身份验证合并到我的应用后端服务器中,例如Spring Security Authentication。我真的不了解身份验证提供程序的工作原理。
我担心的是,不知何故,每个提供商只能对自己的帐户进行身份验证,即Google只能对gmail帐户进行身份验证,而Azure Active目录只能验证某种Microsoft注册帐户?我不喜欢oauth,因为作为一个用户,我总是喜欢从一个未知的提供商登录某些游戏或应用程序因为我从来不确定我是否只是将我的gmail或facebook帐户密码提供给rando。
我很乐意让人们选择使用誓言,但如果这是唯一的选择则不太舒服。我希望人们能够给我他们想要的任何电子邮件地址,以及他们为我的网站创建的密码。
还有以下问题:如果我使用身份验证提供程序,是否可以获取用于登录的实际电子邮件地址?或者我只获得一个代币? 如果我要构建自己的身份验证服务,那么我可以接受任何电子邮件域作为用户名,在Xamarin表单中最容易实现的是什么,有人可以指向我的教程吗?
建议表示感谢。
答案 0 :(得分:3)
是的,您是对的,每个身份提供商都能够对自己的用户进行身份验证; Google OAuth支持Google帐户,Azure Active Directory支持Microsoft工作和学校帐户,Microsoft帐户支持Microsoft个人帐户,等等。
除了我们通常称为“本地帐户”或专门为给定应用程序创建的帐户之外,您还有很多选项可以在应用中添加对这些身份提供商的支持。我将列出几种方法:
Xamarin.Auth
软件包历来为Xamarin应用程序服务。它为Facebook,谷歌,微软和Twitter提供身份验证功能。这绝对取决于您选择的路线,但一般来说,每个解决方案都可以让您在用户身份验证时访问某些用户个人资料信息。对于Azure AD B2C,您可以在应用程序收到的令牌中配置返回到应用程序的声明。对于其他服务,您可能需要进行REST API调用以获取一些用户数据,如电子邮件地址。
HTH。