سلام خدمت دوستان
یک api برای backend یک پروژه به زبان جاوا نوشته شده و اکثر خروجی ها به صورت json هست
کار با api رو توی فریم ورک های ری اکت و ... کاملا مسلط هستم
فقط یک چیز برام سوال شده چطوری میتونم عملیات لاگین و احرازهویت کاربران رو انجام بدم با این فریم ورک ها ، چون مثلا ری اکت که سمت کاربر اجرا میشه.من چطوری میتونم یک سری route هارو محدود کنم و پنل ادمین رو با api طراحی کنم .
مثلا باید یک زبان backend دیگه مثه nodejs داشته باشم که اطلاعات رو از api بگیرم و routeهارو محدود کنم یا مستقیم با خود reactjs هم میشه در واقع گنگ ترین مسئله برام تامین امنیت و احراز هویت پنل ادمین هست نمیدونم اصلا باید چه کار کنم
ممنون میشم راهنمایی کنید
@kazemyavari
شما همه کارها رو توی بک انجام میدید همین چک کردن ها رو هم توی بک انجام بدید توکن رو میفرستید سمت بک و اگر دسترسی لازم رو داشت توی api یک true برگردونید و توی ری اکت یک شرط بذارید اگر true بود صفحه رو نمایش بده و الا ارور 301 یا هر پیام دیگه ای رو نشون بده
سلام با استفاده از روش jwt یا oauth که هیچکدومشون ربطی به ری اکت ندارن و در زبان backend باید پیاده سازی بشند در ری اکت شما فقط یک token رو بعد از لاگین ذخیره سازی میکنید که این توکن برای احرازهویت کاربره .
البته اگر به دنبال مفاهیم jwt برید کاملا متوجه داستان میشید .
@hesammousavi
حسام جانم من در مورد روش jwt میدونم دقیقا و کد نویسی شو انجام دادم
و تا اینجاش مشکلی ندارم
فقط قسمت اصلی سوالم اینجاست که ری اکت سمت کاربر داره اجرا میشه و در اینجا ما میدلور هارو نداریم چطوری میتونم از یک سری route کلا محافظت کنم
بذارید اینطوری مثال بزنم
فرض کنید یک صفحه برای ارسال مقاله داریم و route ها با ری اکت پیاده سازی شدن چطوری میتونم اصلا اجازه دسترسی به این صفحه رو به کاربر ندم در حالی که ری اکت سمت کاربر هست. در واقع در روش jwt مثلا موقع ارسال پست چک میکنیم token مورد نظر ولید هست یا خیر اگر بود ثبت انجام میشه و ....
من میخوام کاربر اصلا به این صفحات دسترسی نداشته باشه بدون لاگین اما اینجاش برام سوال هست اصلا با ری اکت میشه یا نه و یا باز یک واسط سمت سرور برای api باید بنویسم !!!
ممنون میشم یکی از دوستان راهنمایی کنه با توجه به گفتگو ها واقعا نمیدونم چه کار باید بکنم.
تشکر
سلام
این راهی که دارم میگم رو خودم امتحان نکردم . اما به لحاظ تئوری توضیح میدم یک بررسی بکنید . اصلا به لاراول و react هم ربطی نداره و با دستکاری head ارسالی در صفحه و php و php خام و جاوااسکریپت است که از تو مفهوم اجرای صفحات php به ذهنم رسید
مرحله اول : دستورات php یک head دارند ( میدونید اما جهت یادآوری که با head در html سایت اشتباه نشه ) که وقتی مسیر و یک url ارسال میشه ، این head دارای یک سری تنظیمات و config هایی هست . میتونید به صورت دستی یک سری مقادیر رو با php به head اضافه کنید . مثلا همیشه یک متغیری دارید که true و false است . اگر کاربر login بود این متغیر در head باید true باشه و در غیر اینصورت false . نام متغیر رو هم بی ربط بگیرید چون از طریق inpect مرورگر قابل دیدن است .
مرحله دوم : این متغیرهای head صفحه رو با دستورات BOM در جاوااسکریپ میتونید بخونید . اینجا اون متغیر رو بگیرید اگر false بود redirect کنید به یک صفحه دیگه ..
یعنی شما قبل اینکه این route هم رو نشون بدید با جاوااسکریپت این head رو ببینید که اون متغیر وجود داره یا خیر و اگر هست آیا true شده یا نه . و بر اساس اون تصمیم به ادامه بارگزاری صفحه بدید یا redirect به صفحه دیگه
احتمال میدم این روش جواب بده و إلا باید قبل اینکه view رو return کنید سمت server ایم کنترل رو انجام بدید
@kazemyavari
شما همه کارها رو توی بک انجام میدید همین چک کردن ها رو هم توی بک انجام بدید توکن رو میفرستید سمت بک و اگر دسترسی لازم رو داشت توی api یک true برگردونید و توی ری اکت یک شرط بذارید اگر true بود صفحه رو نمایش بده و الا ارور 301 یا هر پیام دیگه ای رو نشون بده
@alirezasafdari
فرض بگیریم توی ری اکت شرط میذارم که اگر true بود صفحه رو نمایش بده و الا ارور ۳۰۱
میخوام بدونم همین قسمت رو به لحاظ امنیتی کاربر نمیتونه دورش بزنه ؟ وارد صفحه بشه ؟
چون ری اکت سمت کاربر هست دیگه توی کدهای جاوا اسکریپت میشه دستکاری کرد؟
@kazemyavari
شما فرض کنید کاربر دور بزنه و وارد صفحه خصوصی بشه، خب صفحه خالی به چه دردش میخوره؟ همون اطلاعات توی صفحه خصوصی رو باید از بک بگیره و دریافت اطلاعات هم منوط به داشتن توکن هست که نداره بنابراین دسترسی به دیتابیس و اطلاعات نداره و واسه خودش یک صفحه خالی باز کرده
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟