ส่วนขยาย 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
, These property is required property for working authentication handler.
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 ( ) ) ;
}
}
หากคุณต้องการระบุข้อความตรวจสอบโทเค็นการรับรองความถูกต้องแบบกำหนดเอง เพียงโยน AuthenticationFailException
บน ITokenAuthService.IsValidateAsync
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 ซึ่งจะใช้สำหรับแก้ไขข้อบกพร่องและการเปลี่ยนแปลงบางอย่าง
ใบอนุญาตเอ็มไอที
ลิขสิทธิ์ (c) 2020 WDWWW
อนุญาตให้บุคคลใดก็ตามที่ได้รับสำเนาของซอฟต์แวร์นี้และไฟล์เอกสารที่เกี่ยวข้อง ("ซอฟต์แวร์") อนุญาตโดยไม่เสียค่าใช้จ่าย เพื่อจัดการกับซอฟต์แวร์โดยไม่มีข้อจำกัด รวมถึงแต่ไม่จำกัดเพียงสิทธิ์ในการใช้ คัดลอก ปรับเปลี่ยน ผสาน เผยแพร่ แจกจ่าย ให้อนุญาตช่วง และ/หรือขายสำเนาของซอฟต์แวร์ และอนุญาตให้บุคคลที่ได้รับซอฟต์แวร์นี้สามารถทำได้ ภายใต้เงื่อนไขต่อไปนี้:
ประกาศเกี่ยวกับลิขสิทธิ์ข้างต้นและประกาศการอนุญาตนี้จะรวมอยู่ในสำเนาทั้งหมดหรือส่วนสำคัญของซอฟต์แวร์
ซอฟต์แวร์นี้มีให้ "ตามที่เป็น" โดยไม่มีการรับประกันใดๆ ทั้งโดยชัดแจ้งหรือโดยนัย ซึ่งรวมถึงแต่ไม่จำกัดเพียงการรับประกันความสามารถในการค้าขาย ความเหมาะสมสำหรับวัตถุประสงค์เฉพาะ และการไม่ละเมิด ไม่ว่าในกรณีใดผู้เขียนหรือผู้ถือลิขสิทธิ์จะต้องรับผิดต่อการเรียกร้องค่าเสียหายหรือความรับผิดอื่นใดไม่ว่าในการกระทำของสัญญาการละเมิดหรืออย่างอื่นที่เกิดขึ้นจากหรือเกี่ยวข้องกับซอฟต์แวร์หรือการใช้งานหรือข้อตกลงอื่น ๆ ใน ซอฟต์แวร์.