将谷歌身份验证添加到现有的.NET Core 2 Web API项目中

12

简要概述:如何为已经启动但没有身份验证的默认core 2 web api项目添加身份验证。

细节:我有一个现有的.NET Core 2 Web API项目,没有配置身份验证,并且正在使用实体框架核心。

它是这样打开的-

图片1-未选择身份验证

未选择身份验证

我想将Google身份验证添加到我的现有项目中,就好像它是在打开时选择了

图片2-个人用户帐户

选择个人用户帐户

但我找不到任何关于添加这些功能+脚手架和迁移的资源 - 我能找到的所有链接都涉及从Core v1升级到v2。

有什么想法吗?

谢谢!


1
抱歉,我不明白你的意思。升级什么?Google链接展示了如何将Google身份验证添加到ASP.NET Core应用程序中。你能否尝试更新你的问题?谢谢。 - spottedmahn
嘿!谢谢!已更新 - 希望更清楚了。基本上,我最开始用的是默认模板(没有身份验证),现在我想将 Google 身份验证添加到我的项目中,而不必将所有工作复制到新项目中。 - JanivZ
不!我没有!你有什么建议或者如何编辑这个问题的建议吗? - JanivZ
考虑中 - 尚未实现 :P 看起来奇怪,没有记录的“修改”流程.. - JanivZ
1
当我尝试做同样的事情时,我发现了以下博客文章: https://jonhilton.net/2017/05/10/secure-you-asp-net-core-mvc-and-web-api-app-using-google/ - Jonny
显示剩余4条评论
1个回答

19

添加软件包

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接