احراز هویت اولین قسمت تعامل با API REST است. لازم است تا JMIX بتواند کاربر را که درخواست ها را انجام می دهد ، شناسایی کند. این امر به JMIX اجازه می دهد تا محدودیت های دسترسی / دسترسی به داده را به درخواست ها تحمیل کند تا اطمینان حاصل شود که کاربر فقط مجاز به دیدن / تعامل با قسمت های سیستم است که باید باشد.
درخواست احراز هویت
برای تعامل با API JMIX REST ، لازم است از طریق یک جریان OAUTH2 تأیید شود. نمودار توالی زیر تعامل عمومی با API REST را توضیح می دهد:
ابتدا مشتری API باید از طریق درخواست تأیید اعتبار ، یک نشانه دسترسی را درخواست کند. برای این کار ، شما باید یک درخواست WWW-Form-urlencoded را با نام کاربری و رمز عبور به عنوان بخشی از فرم بدنه به JMIX ارسال کنید:
درخواست احراز هویت
POST http://localhost:8080/oauth/token Authorization: Basic>> (1) Content-Type: application/x-www-form-urlencoded (2) grant_type=password (3) &useame=> (4) &password=>
| 1 | درخواست احراز هویت به خودی خود با Client Client_id و Client_Secret Basic Auth تأیید شده است. |
| 2 | محتوای درخواست احراز هویت Application/X-www-form-urlencoded است. |
| 3 | Grant_Type رمز عبور برای نشان دادن نوع ورود است. |
| 4 | اعتبار کاربر به عنوان بخشی از فرم با نام کاربری و رمز عبور کلیدها ارائه شده است. |
پس از یک ورود موفقیت آمیز ، JMIX نشانه دسترسی را به عنوان بخشی از پاسخ HTTP برمی گرداند:
HTTP/1. 1 200
ویژگی Access_Token شامل نشانه ای است که می توانید در درخواست های بیشتر از آن استفاده کنید: CXE0W/9COSNPSO8V2JEDOI8QA3Y =.
نشانه
توکن به عنوان یک اعتبار/رمز عبور موقت عمل می کند. پس از یک دوره خاص ، نشانه منقضی می شود و شما باید یک نشانه جدید درخواست کنید. اولین گزینه برای درخواست نشانه جدید برای درخواست مجدد اعتبار خود از کاربر و دوباره درخواست تأیید اعتبار منظم.
| نام کاربری و رمز عبور را در برنامه مشتری خود ذخیره نکنید تا کاربر نیازی به ورود مجدد اعتبار خود نداشته باشد. یا دوباره از کاربر برای اعتبار خود بخواهید یا از Token Token برای جلوگیری از انقضا توکن استفاده کنید. |
درخواست تأیید اعتبار اصلی حاوی یک refresh_token است که می توانید برای ایجاد یک نشانه دسترسی جدید از آن استفاده کنید. در حالی که نشانه دسترسی نسبتاً کوتاه مدت است (به طور پیش فرض 12 ساعت برای JMIX) ، توکن Refresh به طور پیش فرض 365 روز معتبر است. بنابراین به عنوان یک اعتبار طولانی مدت برای صدور نشانه های جدید مناسب است.
برای به دست آوردن یک نشانه دسترسی جدید از طریق Token Refresh ، می توانید از همان نقطه انتهایی به دست آوردن یک نشانه استفاده کنید. اما به جای استفاده از Grand_Type: گذرواژه ، می توانید از Refresh_Token نیز استفاده کنید. در اینجا نمونه ای از نحوه استفاده از نشانه های تازه برای به دست آوردن یک نشانه دسترسی جدید آورده شده است:
درخواست احراز هویت را تازه کنید
POST http://localhost:8080/oauth/token Authorization: Basic>>نوع محتوا: برنامه/x-www-form-urlencoded grant_type = refresh_token (1) r & refresh_token = hh2xcuz7fgd35obagebngevf4ws = (2)
| 1 | Grant_Type برای نشان دادن نوع ورود به سیستم انجام می شود. |
| 2 | نشانه تازه به عنوان بخشی از فرم با کلید refresh_token ارائه شده است. |
این پاسخ حاوی یک نشانه دسترسی جدید است که یک دوره انقضا جدید دارد. با این کار ، شما می توانید بدون نیاز به درخواست اعتبار خود پس از انقضای نشانه دسترسی ، به API دسترسی داشته باشید.
درخواست API
بسته به مورد استفاده ، دو روش در مورد نحوه استفاده از نشانه دسترسی برای تأیید اعتبار در برابر API های مختلف JMIX وجود دارد. بیایید با اولین و اصلی روش ارائه نشانه دسترسی شروع کنیم: از طریق هدر HTTP در درخواست های زیر.
تأیید اعتبار از طریق هدر
با استفاده از نشانه دسترسی CXE0W/9COSNPSO8V2JEDOI8QA3Y = ، اکنون می توانید درخواست هایی را علیه API REST انجام دهید. نشانه دسترسی باید به عنوان عنوان مجوز در هر درخواست ، مانند مثال زیر منتقل شود:
درخواست مشتری ایجاد کنید
ارسال http: // localhost: 8080/استراحت/اشخاص/rstex11_customer مجوز: تحمل CXE0W/9COSNPSO8V2JEDOI8QA3Y = (1)
| 1 | درخواست API با نوع مجوز حامل و نشانه دسترسی دریافت شده تأیید می شود. |
از طریق پارامتر URL تأیید کنید
همچنین می توان نشانه دسترسی را به عنوان یک پارامتر پرس و جو URL منتقل کرد. این امر زمانی ضروری است که هدرهای HTTP تنظیم نشود. در صورت پیوند مرورگر به یک پرونده یا ارائه تصویر.

در مثال زیر تصویری از API پرونده ها باید از طریق یک وب سایت ارائه شود.
در این حالت ، تنظیم هدرهای HTTP امکان پذیر نیست. بنابراین ، می توانید به عنوان یک URL به عنوان یک پارامتر پرس و جو در Access_Token عبور کنید:

دسترسی ناشناس
به طور پیش فرض ، تمام نقاط پایانی فقط پس از احراز هویت موفق در برابر برنامه در دسترس هستند. اما همچنین می توان قسمتهای خاصی از API REST را بدون تأیید اعتبار در معرض دید قرار داد. این کار با استفاده از قابلیت دسترسی ناشناس JMIX امکان پذیر است. در این حالت ، درخواست API به عنوان کاربر ناشناس انجام می شود ، که به طور پیش فرض در یک برنامه JMIX پیکربندی شده است.
برای هر نقطه پایانی امن که بدون عنوان تأیید اعتبار نامیده می شود ، کاربر با جلسه کاربر ناشناس تأیید می شود.
به نقاط پایانی خاص برای دسترسی ناشناس ، لیستی از الگوهای URL را در ویژگی های برنامه Jmix. rest. anmony-url-Pattes تنظیم کنید. مثلا:
jmix. rest. anonymous-url-pattes = /service/services/productervice/getProductInformation ، /استراحت/اشخاص/محصول ، /استراحت/اشخاص/محصول/*
اگر می خواهید موجودیت محصول را به روز کنید یا حذف کنید ، آخرین الگوی موجود در مثال بالا لازم است ، زیرا در این حالت URL دارای قسمت شناسه است.
پس از اتمام این تنظیم ، بدون ارسال یک هدر مجوز ، می توان با ProductRevice ارتباط برقرار کرد:
درخواست getProductInformation
GET>/خدمات /محصولات سرویس /getProductInformation؟ productId = 123 # مجوز: تنظیم نشده است
این درخواست در پاسخ موفقیت آمیز سرویس پاسخ خواهد داد:
HTTP/1. 1 200
اگر می خواهید دسترسی ناشناس به برخی از نقاط پایانی نهادها را فراهم کنید ، اطمینان حاصل کنید که کاربر ناشناس از این نهادها حق دارد. شما می توانید این کار را با ایجاد نقش منبع و اختصاص آن به کاربر ناشناس در DatabaseUserRepository. initanonmoususer () انجام دهید. مثلا:
Resourcerole (name = "AnonymousRestrole" ، Code = AnonymousRestrole. code ، Scope = "API") رابط عمومی AnonymousRestrole
primary component ("userRepository") DatabaseUserRepository کلاس عمومی را گسترش می دهد>
| ویژگی دسترسی ناشناس نیازی به آن ندارد که کاربر ناشناس نقش استراحت-مینیمال را داشته باشد. |
این صفحه با استفاده از UI پیش فرض Antora ساخته شده است.
کد منبع این UI تحت شرایط مجوز MPL-2. 0 مجوز دارد.
فارکس کاران ایران...
ما را در سایت فارکس کاران ایران دنبال می کنید
برچسب :
نویسنده : ديناروند فهيمه
بازدید : <-PostHit->
تاريخ : يکشنبه
11 تير
1402 ساعت: 17:46