ملحق 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 ( ) ) ;
}
}
إذا كنت بحاجة إلى تقديم رسالة التحقق من صحة الرمز المميز للمصادقة، فما عليك سوى طرح 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، والذي سيتم استخدامه لإصلاح الأخطاء وبعض التغييرات.
رخصة معهد ماساتشوستس للتكنولوجيا
حقوق الطبع والنشر (ج) 2020 WDWWW
يُمنح الإذن مجانًا لأي شخص يحصل على نسخة من هذا البرنامج وملفات الوثائق المرتبطة به ("البرنامج")، للتعامل في البرنامج دون قيود، بما في ذلك، على سبيل المثال لا الحصر، حقوق الاستخدام والنسخ والتعديل والدمج. ونشر و/أو توزيع وترخيص من الباطن و/أو بيع نسخ من البرنامج، والسماح للأشخاص الذين تم توفير البرنامج لهم بالقيام بذلك، وفقًا للشروط التالية:
يجب تضمين إشعار حقوق الطبع والنشر أعلاه وإشعار الإذن هذا في جميع النسخ أو الأجزاء الكبيرة من البرنامج.
يتم توفير البرنامج "كما هو"، دون أي ضمان من أي نوع، صريحًا أو ضمنيًا، بما في ذلك، على سبيل المثال لا الحصر، ضمانات القابلية للتسويق والملاءمة لغرض معين وعدم الانتهاك. لا يتحمل المؤلفون أو أصحاب حقوق الطبع والنشر بأي حال من الأحوال المسؤولية عن أي مطالبة أو أضرار أو مسؤولية أخرى، سواء في إجراء العقد أو الضرر أو غير ذلك، الناشئة عن أو خارج أو فيما يتعلق بالبرنامج أو الاستخدام أو المعاملات الأخرى في برمجة.