11

TL;DR - 如何将身份验证添加到在没有身份验证的情况下启动的现有默认核心 2 Web api 项目。

详细信息 - 我有一个未配置身份验证的现有 .net core 2 web api 项目,并且我正在使用实体框架核心。

它被打开了——

图 1 - 未选择身份验证

未选择身份验证

我想将 Google 身份验证添加到我现有的项目中,就好像它是用

图 2 - 选择了个人用户帐户

已选择个人用户帐户

但我找不到任何关于添加这些功能 + 脚手架和迁移的资源- 我能找到的只是关于从核心 v1 升级到 2 的链接。

有任何想法吗?

谢谢!

4

1 回答 1

18

添加包

Microsoft.AspNetCore.Identity
Microsoft.AspNetCore.Identity.EntityFrameworkCore
Microsoft.AspNetCore.Authentication.Google

然后在启动中:

public void ConfigureServices(IServiceCollection services)
{
    services.AddIdentity<IdentityUser, IdentityRole>();
    services.AddAuthentication(
            v => {
                v.DefaultAuthenticateScheme = GoogleDefaults.AuthenticationScheme;
                v.DefaultChallengeScheme = GoogleDefaults.AuthenticationScheme;
            }).AddGoogle(googleOptions =>
            {
                googleOptions.ClientId = "CLIENT ID";
                googleOptions.ClientSecret = "CLIENT SECRET";
            });
    services.AddMvc();
}

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    app.UseAuthentication()
       .UseMvc();
}

这里有一个最小的工作示例: https ://github.com/mjrmua/Asp.net-Core-2.0-google-authentication-example

于 2017-12-16T19:57:39.103 回答