با سلام،
من اولین تجربه ام با api هاست و می خوام برای پروژه ام یک اپلیکیشن اندروید بسازم، پروژه ام تقریبا یک وبلاگه و اپلیکیشن هم قراره فقط قابلیت خوندن مطالب رو داشته باشه. من نمی خوام کاربران ثبت نام کنن و وارد سایت بشن تا بتونن مطالب رو بخونن، مثل اپلیکیشن دیوار و ... که میشه بدون ثبت نام آگهی ها رو دید.
این سؤال رو ١٠٠ جور مختلف تو گوگل سرچ کردم ولی همه جواب ها پکیج های پاسپورت و سنکتوم رو معرفی می کنن، که در واقع برای احراز هویت کاربران ثبت نام شده هستند.
مشکل من اینه که نمی دونم چطور باید بفهمم که این درخواستی که به api فرستاده میشه از کجاست یعنی از اپلیکیشن خودمه از یه اپلیکیشن دیگه است از یه رباته و ... یعنی هر کسی می تونه یو آر ال های api من رو پیدا کنه و ازشون استفاده کنه.
خیلی ممنون میشم راهنمایی کنید
@hesammousavi
سلام
راحت ترین راه اینه که یه token با طول بالا بسازید و همراه با ریکوئست ارسال کنید و این طرف چک کنید که همونه یا خیر (با میدلور راحت تره)
در واقع یه کلید که بین اپلیکیشن و api شما مشترک باشه
@muhammad11
سلام خدمت شما
فکر میکنم عنوان سوالی که گذاشتید به کل اشتباه هست.
شما برای ساخت api حتما نیاز به ثبت نام و ورود ندارید. میتونید روت یا همون اند پوینتی که تعریف میکنید بهش میدلور Auth ندید و به صورت پابلیک بهش دسترسی داشته باشید.
اما در مورد بحث دیگه که مد نظرتون بود بابت امنیت وب سرویس و اینکه فرد دیگه نتونه با در آوردن آدرس وب سرویس به اطلاعات دسترسی داشته باشه. راه های مختلفی وجود داره.
استفاده از توکن یک روشش هست که خوب معمولا jwt استفاده میکنن
بحث بعدی این هست که برای امنیت بیشتر نیازه دیتایی که میفرستید را کد کنید و بعد سمت بک اند که رسید دیکد کنید و ولیدت کنید تا مطمئن بشید که از سمت اپ خودتون اطلاعات ارسال شده.
اما خوب یک سوال اینجا برای من پیش اومد و اونم اینه که اگر میگید یک وبلاگ هست که مطالبش به صورت عمومی هم در دسترس همگان هست. چرا میخواهید api ایمن بسازید که کسی دیگه نتونه استفاده کنه ؟
اتفاقا اکثر سایت های بزرگ api میدن که توسعه دهندگان بتونند با استفاده از اون برنامه هایی بر پایه وب سرویس اونها ارائه بدن.
به نظر من که حتی میتونید وب سرویس داکیومنت کنید و به صورت عمومی منتشر کنید تا دیگرانم اگر دوست داشتن مطالبتون داخل سرویس هاشون بذارن.
خیلی ممنون دوستان @m.mahdavi97 - @ariaieboy - در مورد عنوان سؤال حق با شماست، ولی من فقط می خواستم تأکید کنم که مسئله من احراز هویت نیست. در مورد سؤالتون هم حقیقتش پروژه اصلی فروشگاه اینترنتیه و واقعا بدون امنیت نمیشه، توی فروشگاه هم یه روت هایی هست که قراره بدون احراز هویت قابل دسترسی باشند.
اما خوب یه سؤال دیگه دارم، من از اندروید چیز زیادی نمیدونم ولی میدونم که روش هایی وجود داره که برنامه اندروید رو دیکامپایل کرد این یعنی توکن ما هم لو میره. برای هم راه حل وجود داره؟
بازهم ممنون
میتونی با یه سری مشخصات دستگاه، (نمیدونم به چی دسترسی داری، مثلن MAC یا IMEI) به صورت فرضی تو API رجیستر کنی تو بار اول.
بعد از اون با توکنی که بت برگشته، همیشه چک کنی که طرف مجازه یا نه.
در واقع یه احراز هویت میذاری که اتوماتیکه و کاربر رجیستر نمیکنه.
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟