MVC6社会认证

时间:2016-02-24 01:27:21

标签: asp.net-core asp.net-core-mvc asp.net-core-1.0

我目前正在使用ASP.NET核心MVC6构建一个Web应用程序并使用新的Identity模型。不幸的是,目前没有很多关于这个主题的文档,我想实现社会认证。在确定如何使用MVC6 / Identity实现此功能时,最好的方法是什么?

1 个答案:

答案 0 :(得分:1)

与Joe Audette一样,提到了很好的文档:Enabling authentication using external providers

有Facebook的例子,但你可以添加微软,谷歌和Twitter的方式 - 只需通过NuGet包(Microsoft.AspNet.Authentication*)添加提供商 - 或者你可以使用一般的OAuth 2.0提供商和支持OAuth的任何其他客户端2.0

但请注意我提到的OAuth 2.0提供商可能会对其他提供商产生意想不到的影响,尤其是当您设置CallbackPath时 - 不要问为什么,因为我还不知道

就目前而言,我只使用Microsoft和Google提供商,两者都可以使用默认设置 - 下面你可以找到我使用范围的示例:

Startup.cs
...

app.UseIdentity();

// External Authentication
app.UseGoogleAuthentication(options =>
{
    options.ClientId = Configuration["OAuth:Google:ClientId"];
    options.ClientSecret = Configuration["OAuth:Google:ClientSecret"];
    options.AutomaticAuthenticate = false;
    options.Scope.Add("https://www.googleapis.com/auth/userinfo.email");
    options.Scope.Add("https://www.googleapis.com/auth/userinfo.profile");
    //options.Scope.Add("https://www.googleapis.com/auth/plus.me");
    //options.Scope.Add("https://www.googleapis.com/auth/plus.login");
});

app.UseMicrosoftAccountAuthentication(options =>
{
   options.ClientId = Configuration["OAuth:MicrosoftAccount:ClientId"];
   options.ClientSecret = Configuration["OAuth:MicrosoftAccount:ClientSecret"];
   options.AutomaticAuthenticate = false;
   options.Scope.Add("wl.emails");
   options.Scope.Add("wl.basic");
   //options.Scope.Add("wl.phone_numbers");
   //options.Scope.Add("wl.signin");
   //options.Scope.Add("wl.offline_access");
});

...


有关范围的更多信息: