簡體   English   中英

Asp.net核心2 - WebApi中的外部身份驗證

[英]Asp.net core 2 - External Authentication in WebApi

現在我知道有很多關於這個的帖子,但我的情況有所不同。 所以請耐心等待。

當我在.Net Framework上創建WebApi並選擇個人用戶帳戶時,它已經為我提供了一個外部身份驗證的工作代碼。 在此輸入圖像描述

有AccountController,Startup.auth.cs和其他具有外部身份驗證代碼的文件 在此輸入圖像描述

現在我知道.net核心已經發生了變化。 但個人用戶帳戶的net.core web api與它沒有任何相似之處。

當我嘗試在.net Core上使用WebApi時,它只為我提供了一個選擇Azure應用程序的選項。 在下圖中,使用.net核心上的WebApi,藍色指向的下拉列表僅提供一個Azure AD b2c應用程序選項。 沒有帳戶控制器是腳手架,也沒有其他配置文件用於外部身份驗證。

在此輸入圖像描述

沒有我需要的文件。 在此輸入圖像描述

我試過這些鏈接: https//docs.microsoft.com/en-us/aspnet/web-api/overview/security/external-authentication-services

https://docs.microsoft.com/en-us/aspnet/core/security/authentication/social/

但第一個鏈接是針對.net框架,但對我沒有幫助。 第二只適用於Web應用程序的asp.net核心但不是的WebAPI

我需要在web api中進行外部身份驗證,因為我希望所有來自Web或移動設備的用戶都可以通過Google或Facebook進行身份驗證。 請任何人指出我正確的方向。 我在這里錯過了一些東西。 有沒有文件可以幫我解決這個問題?

選擇“個人用戶帳戶”時,您要選擇“在應用程序中存儲用戶帳戶”。

以這種方式創建應用程序時,腳手架將創建AccountController。 以這種方式創建項目后,您可以轉到Startup.cs

在ConfigureServices方法中,您必須添加(對於谷歌):

services.AddAuthentication()
    .AddGoogle(options => 
    {
        //Set client Id and secret here
        options.ClientId = "clientId_here";
        options.ClientSecret = "ClientSecret_here";
    });

有關詳細信息,請訪問: https//docs.microsoft.com/en-us/aspnet/core/security/authentication/social/

您可以使用JSON Web Tokens或JWT。

這是一篇指導正確路徑的文章: https//auth0.com/blog/securing-asp-dot-net-core-2-applications-with-jwts/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM