사용자 지정 토큰 인증 구성을 위한 ASP.NET Core 확장

dotnet add package Wd3w.AspNetCore.TokenAuthentication
CustomTokenAuthService 구현인증 인프라가 무엇이든 이 인터페이스를 구현하고 서비스로 등록하면 됩니다.
public class CustomTokenAuthService : ITokenAuthService
{
private CustomDb _db { get ; set ; }
public CustomTokenAuthService ( CustomDb db )
{
_db = db ;
}
public async Task < bool > IsValidateAsync ( string token )
{
return await _db . AccessTokens . AnyAsync ( accessToken => accessToken . Key == token ) ;
}
public async Task < ClaimsPrincipal > GetPrincipalAsync ( string token )
{
// Do create your own custom claims pricipal object and return them;
return new .. .
}
} AddTokenAuthenticationScheme<TService> 사용하여 인증 빌더에 사용자 지정 토큰 체계를 추가합니다. Realm , TokenLength , 이러한 속성은 인증 처리기를 작동하는 데 필요한 속성입니다.
services . AddAuthentication ( "Bearer" )
. AddTokenAuthenticationScheme < CustomTokenAuthService > ( "Bearer" , new TokenAuthenticationConfiguration
{
Realm = "www.example.com/sign-in" ,
TokenLength = 21 ,
// AuthenticationType = "Bearer" - this value is optional, default is from scheme parameter value.
} ) ; AuthorizeAttribute 연결합니다. [ ApiController ( "[controller]" ) ]
public class SomeController : ControllerBase
{
[ HttpGet ]
[ Authorize ]
public Task < ActionResult > GetSomethingAsync ( )
{
return Task . FromResult ( Ok ( ) ) ;
}
} 사용자 지정 인증 토큰 확인 메시지를 제공해야 하는 경우 ITokenAuthService.IsValidateAsync 에서 AuthenticationFailException 발생시키세요.
public class CustomTokenAuthService : ITokenAuthService
{
public async Task < bool > IsValidateAsync ( string token )
{
throw new AuthenticationFailException ( "invalid_format" , "access token couldn't have any special characters." ) ;
}
} 이 패키지 버전 관리 전략은 AspNetCore 패키지 버전을 따릅니다. AspNetCore에 대한 새 릴리스가 있으면 이 패키지도 업데이트됩니다.
부 버전만 AspNetCore와 일치하지 않으며 버그 수정 및 일부 변경에 사용됩니다.
MIT 라이센스
저작권 (c) 2020 WDWWW
본 소프트웨어 및 관련 문서 파일("소프트웨어")의 사본을 취득한 모든 사람에게 사용, 복사, 수정, 병합에 대한 권리를 포함하되 이에 국한되지 않고 제한 없이 소프트웨어를 취급할 수 있는 권한이 무료로 부여됩니다. , 다음 조건에 따라 소프트웨어 사본을 게시, 배포, 재라이센스 부여 및/또는 판매하고, 소프트웨어를 제공받은 사람이 그렇게 하도록 허용합니다.
위의 저작권 고지와 본 허가 고지는 소프트웨어의 모든 사본 또는 상당 부분에 포함됩니다.
소프트웨어는 상품성, 특정 목적에의 적합성 및 비침해에 대한 보증을 포함하되 이에 국한되지 않고 명시적이든 묵시적이든 어떠한 종류의 보증 없이 "있는 그대로" 제공됩니다. 어떠한 경우에도 작성자나 저작권 보유자는 계약, 불법 행위 또는 기타 행위로 인해 소프트웨어나 사용 또는 기타 거래와 관련하여 발생하는 모든 청구, 손해 또는 기타 책임에 대해 책임을 지지 않습니다. 소프트웨어.