将Google身份验证添加到**现有** .net核心2 web api项目

时间:2017-10-12 00:50:14

标签: c# asp.net-core .net-core asp.net-core-webapi ef-core-2.0

TL; DR - 如何将身份验证添加到未使用auth启动的现有默认核心2 web api项目。

详情 - 我已经有一个现有的.net core 2 web api项目没有配置身份验证,我正在使用实体框架核心。

像 -

那样打开了

PIC 1 - 未选择身份验证

No Auth Selected

我想将Google身份验证添加到我的现有项目,就好像它已打开

一样

PIC 2 - 选择了单个用户帐户

Individual User Accounts Selected

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

任何想法?

谢谢!

1 个答案:

答案 0 :(得分:15)

添加包

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