【问题标题】:add google authentication to **Existing** .net core 2 web api project将 google 身份验证添加到 **Existing** .net core 2 web api 项目
【发布时间】:2018-03-23 19:20:42
【问题描述】:

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

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

它被打开了 -

PIC 1 - 未选择身份验证

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

打开的一样

PIC 2 - 已选择个人用户帐户

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

有什么想法吗?

谢谢!

【问题讨论】:

  • 对不起,我不关注。升级什么? google 链接向您展示了如何将 Google Auth 添加到 asp.net 核心应用程序。您可以尝试更新您的问题吗?问候。
  • 嘿!谢谢 !更新 - 希望它更清晰。基本上我从默认模板开始(没有身份验证),现在我想将 google auth 添加到我的项目中,而不必将我所有的工作复制到一个新的..
  • 你有没有想过这个问题?我真的很难让我的工作和这么多示例使用 MVC 模板,我只想要 API。
  • 不!我没有!您有任何建议或建议如何编辑问题...
  • 我在尝试做同样的事情时发现了以下博客文章:jonhilton.net/2017/05/10/…

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


【解决方案1】:

添加包

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

【讨论】:

    猜你喜欢
    • 2020-10-15
    • 2018-06-23
    • 2017-04-27
    • 2018-03-01
    • 2017-07-27
    • 2018-01-28
    • 2017-09-05
    • 2020-09-05
    • 1970-01-01
    相关资源
    最近更新 更多