محتاج أي حد يكلم الـ Order Controller لازم يكون Authorize
انما هنشيل بتاع الـ Product لأنها مش منطقي انما المنطقي ان لما حد يعمل Order او اي حاجة من دي لازم يكون Authorize
فممكن اعمل كل Endpoint تكون Authorize
بس الصح لو الكنترولر كله اجي على الكونترولر من فوق واعمل Authorize
والـ Default بتكون AllowAnonymous
فانا هعملها فوق ولو فيه Endpoint جواها عايزها تبقا عادي بعملها AllowAnonymous
ودلوقتي برضو مش لازم يبعت Email لأنه ببعت توكين وجواه بيكون الـ Email من ضمن الـ Claims
فهروح على الـ OrderDto
واشيل الـ Email
بس هجيب الـ Email ازاي؟ عندنا Property اسمها User ودي بتجيب الـ Claims بتاع الـ User
جبتها منين؟ انا ورثتها من الـ BaseApiController
اللي ورث من الـ ControllerBase
وهو بيجيبها من الـ HttpContext
من الـ Action اللي بيتنفذ دلوقتي
var buyerEmail = User.FindFirstValue(ClaimTypes.Email);
// Change it in all Endpoint
// Inside Endpoint
ونعمل نفس الحوار مع كل الـ Endpoints
نعدي على كل واحد ونشوف اللي بياخد Email ونمسحه
اللي بعدها مش هخليه يبعتلي الايميل اصلا