سلام. یک وب اپلیکیشن خیلی بزرگ وجود داره که با durandal کد زده شده و باید اون رو به react تبدیل کنم و میخوام هر صفحه ای که تبدیل شد به react جایگزین صفحه قبل خودش بشه. از هر صفحه ای که شروع کنم نیاز داره api token ای که کاربر لاگین میکنه میگیره رو داشته باشه تا بتونه به اطلاعاتی که فرم بهش نیاز داره رو دسترسی داشته باشه. از صفحه لاگین هم نمیتونم شروع کنم قطعا چون فعلا نمیتونه جایگزین صفجه لاگین فعلی بشه. چه چیزی باید اضافه بشه یا تغییر بکنه (چه توی بک اند و چه در فرانت اند) تا بشه از یه صفحه شروع کرد...
به نظرم ساختار اپلیکیشن فعلی رو تحلیل کنید.
و شروع کنید صفحه به صفحه، کدها رو تبدیل به React کنید.
شاید بک اند اصلا احتیاجی به تغییر نداشته باشه
درست میفرمایید. من از صفحه ای شروع کردم که کمترین پیچیدگی رو داره. ولی باز هم نیاز داره که api tokenای که کاربر وقتی لاگین میکنه رو داشته باشه تا بتونه فرم ها رو اطلاعات دهی بکنه و یا اونها رو آپدیت بکنه. همونطور هم که گفتم نمیتونم از لاگین شروع کنم و جلو برم. سوالم اینه با این شرایط چه کاری باید بکنم (چه بک اند و چه فرانت اند) تا بشه صفحه به صفحه شروع به تغییر کرد.
@ali.bayat
@hesammousavi
@hossein.r.1442
میتونید با postman یک بار لاگین کنید و api Token ای که بهتون میده رو در درخواستهای api استفاده کنید تا زمانی که به صفحه لاگین برسید. به همین سادگی
مسلما به api token نیاز دارید
پس اول فکری به حال احراز هویت بکنید.
ببینید به چه endpoint ی درخواست زده میشه.. و چه پارامترهایی لازم داره.
با postman هم authenticate رو انجام دادم (ایمیل و پسورد)ولی چیزی که بهم برمیگردونه حاوی api token نیست.نه در header و نه در body.
در header هست:
access-control-allow-headers →content-type,Authorization,_RequestVerificationCookie
access-control-allow-methods →GET,POST,HEAD,DELETE,PUT,OPTIONS
access-control-allow-origin →*
access-control-expose-headers →x-token,x-requestVerificationToken
cache-control →no-cache, no-store
content-length →10319
content-type →application/json; charset=utf-8
date →Fri, 20 Mar 2020 02:19:17 GMT
expires →-1
pragma →no-cache
server →Microsoft-IIS/10.0
x-aspnet-version →4.0.30319
x-sourcefiles →=?UTF-8?B?RDpcZXppLW1hbmFnZXJcRXppTWFuYWdlclxhcGlcaW1hZ2Vz?=
و json ای هم که بر میگردونه هست:
{
"name": "032731.jpg",
"imageID": 856,
"imageName": "032731",
"imageExtension": "jpg",
"lastUpdate": "2019-08-21T15:15:57",
"readOnly": false
},
{
"name": "1.jpg",
"imageID": 539,
"imageName": "1",
"imageExtension": "jpg",
"lastUpdate": "2018-10-08T13:03:56",
"readOnly": false
},
بهم گفتن ما از session استفاده میکنیم که بعد از لاگین حتما یه session token میده دیگه! ولی توی اطلاعات Apiشون نبود. بهم گفتن اگه تغییری نیاز داری بگو انجام میدیم. ممنون میشم راهنمایی کنید که چیکار بکنم.
@hesammousavi
@ali.bayat
شما باید در نهایت از سمت بکاند یه توکن دریافت کنید
سپس اون توکن رو در درخواست هاتون (معمولا در header) لحاظ کنید تا سرور متوجه بشه شما کاربر هستید یا خیر.
به جز بدنه و هدر ممکنه این توکن از طریق querystring هم منتقل بشه.
یعنی برنامه نویس بک اند هر وقت که کاربر لاگین میکنه توکن رو د jsonای که میگیرم اضافه کنه.
درسته؟
@ali.bayat
@hesammousavi
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟