创建一个.net网站,支持Facebook, Twitter, Google+ OAuth登录
本文关键字:Facebook 支持 Twitter Google+ 登录 OAuth 网站 net 一个 创建 | 更新日期: 2023-09-27 18:16:56
我想实现OAuth功能,允许我正在构建的应用程序的用户通过Facebook, Twitter和可能的Google plus登录。到目前为止,我发现的每一篇文章似乎都建议从头开始,创建一个MVC 4"互联网应用程序"项目。
实现此功能所需的相关引用,代码片段,插件等是什么?
我正在使用表单授权
一旦你设置了表单身份验证MVC 4已经内置了支持用户使用OpenID和OAuth进行身份验证,使用一个名为DotNetOpenAuth的开源项目,它是一个非常类似于使用cookie和重定向的表单身份验证的系统。
这些服务只需要在应用程序启动期间进行配置。在Application_Start()事件中有一个调用AuthConfig.RegisterAuth(),它包含了给第三方服务的注释掉的代码。
在你使用这些服务之前,你需要注册你的应用程序。当你在第三方注册时,你通常会被分配一个appId和一个appSecret。您需要将这些值插入到作为客户端注册它们的代码中。
Google是一个被注释掉的提供商,它不需要任何注册,所以你可以取消注释该行。OAuthWebSecurity.RegisterGoogleClient ();在AuthConfig.cs文件中。
当你重新构建应用程序并进入登录页面时,你会看到在右边现在有一个Google按钮,你可以通过Google服务按下登录。这个按钮将重新引导用户到谷歌,在那里他们可以用他们的谷歌帐户登录。一旦用户登录,Google将询问用户是否愿意在应用程序中使用他们的电子邮件地址。用户必须回答是,如果他们拒绝,他们将无法登录到你的应用程序。
然后Google将重定向回你的应用程序,发送一些加密密封和签名的参数,以便OpenAuth可以验证Google确实验证了用户。一旦用户成功通过身份验证并登录,他们就可以通过点击出现在他们面前的注册按钮来创建帐户。在AuthConfig.cs文件顶部的注释中有一个链接,该链接指向一个页面,告诉您如何注册其他第三方服务。http://go.microsoft.com/fwlink/?LinkID=252166
关于您要求"不创建互联网应用程序"....
"Internet application"是一种项目类型,它告诉Visual Studio你正在使用它做什么。这不是任何。net标准所要求的,但如果你正在使用Visual Studio,那么这是你需要采取的步骤。否则VS不知道它是否应该帮助你构建一个WinForms应用程序,控制台应用程序,WPF等…
你可以使用的另一个项目类型是网站,但是如果你打算利用。net而不是Internet应用程序是一个更好的选择——它假设你构建的网站将运行。net代码。
其他人提到使用DotNetOpenAuth让您的网站运行;我完全支持这一点,但我也想提一下Social Bootstrap API项目。它实现了类似的结果,但使用的是ServiceStack.NET。你很有可能不想使用它,但评估备选方案总是好的——它们可以帮助你了解每个方案的优缺点。