دوره مجازی اندروید (جلسه 45): پیاده سازی سرویس ورود به حساب کاربری و ثبت نام - قسمت دوم

- visibility ٨ mode_comment

مطالب مطرح شده در این جلسه:

  • سمت سرور
    • ایجاد جدول برای ثبت نام کاربران
    • چک کردن موجود بودن ایمیل کاربر در جدول کاربران
    • اهراز هویت کاربر با ایمیل و پسورد
    • ثبت کاربر با ایمیل و پسورد
    • بازگرداندن پاسخ با فرمت Json
  • سمت کلاینت
    • دریافت اطلاعات کاربر و چک کردن صحیح بودن آن ها
    • ارسال اطلاعات به سرور با استفاده از Volley
    • معرفی متد onActivityResult
    • ثبت اطلاعات کاربر در SharedPreference
info توجه

این مطلب یک جلسه از دوره آموزش اندروید می باشد و برای مشاهده آن باید در دوره ثبت نام کنید.

ثبت نام در دوره آموزش اندروید

comment دیدگاه کاربران
ح حسین

با سلام
ممنون بایت این آموزش .
نکاتی درباره این آموزش:
مهمترین نکته اینه که بهتره برای ورود با اکانت گوگل هم آموزش بگذارید و این موضوع هم مثل قولی که از آقای آوند بابت کار با api وردپرس بود ، نشود . (در کامنت ها موجود است و ایشان قول کار با web api وردپرس رو دادن ولی تبدیل به استفاده php خام شد که تقریبا بسیار ساده بود با توجه به فراگیر شدن وردپرس بهتر همون استفاده از api وردپرس بود و نه برای دل بعضی کاربران مبتدی با php خام روال کار پیش برود !)
پس لطفا حداقل ورود با گوگل و شبکه های اجتماعی رو در برنامه قرار دهید .
مورد بعدی :فرض کنید کسی در برنامه میخواد log out کنه و با ایمیل دیگه ای وارد بشه ( این در برنامه نبود)
نکته بسیار مهم و اساسی دیگه که واقعا باید در نظر گرفته میشد مربوط به ارسال پارامترها به سرور هست که بدون هیچ رمزنگاری یا هیچ تدابیر امنیتی بصورت plain text ارسال میشد و اصلا کار درستی نیست ( حداقل دیگه اینو توی آموزش قرار بدین که بهترین راه و امن ترین راه ارسال پارامترهای مهم به سرور جهت شنود نشدن چیست ؟ و لطفا در فیلم تکمیلی قرار بگیره )
مورد دیگه در مورد امنیت در این دوره اصلا صحبت چنئانی نشد هر چند که جا داشت از این 40 ساعت حداقل 5تا10ساعت مفید برای امنیت برنامه و نوع کدنویسی امن صحبت میشد . مثلا در این دو ویدیو چیزی در حدود 2 ساعت فقط صرف ساخت ظاهر شد که چندان بار علمی ندارد زیرا بیشتر کسانی که در چنین دوره ای ثبت نام میکنن انتظار سطح بالاتری دارند و هر چند افراد آماتور هم وجود دارند ولی باید حد واسطی هم باشه تا اونا نادیده گرفته نشوند.

سعید شاهینی

سلام٬ ورود به اکانت با گوگل واقعا در ایران کاربردی نیست و می تونم بگم داخل ایران قابل اعتماد نیست هر چند که داخل وب سایت ها ازش استفاده می کنند و مشکلی هم نداره. به جای اون ۴ ساعت آموزش اضافه کردم که مدیون نباشم.
در مورد logout: هدف من از این آموزش این نیست که تمامی مواد ساخت یک اپلیکیشن رو آموزش بدم چون اصلاٌ امکان پذیر نیست٬ ۱۰ ها هزار ویژگی هستند که اپ های مختلف دارند که پیاده سازی و آموزش آن ها امکان پذیر نیست. هدفم از این آموزش این بود که دانشجویان مفاهیم رو درک کنن و بتونن باقی راه رو خودشون پیدا کنند. مثلاٌ در مورد همین سوالی که فرمودید: من کار با shared preference رو کامل توی این دوره آموزش داده بودم و گفتم برای نگه داری و چک کردن ورود کاربر باید از این ابزار کمک بگیرید و ایمیل کاربر رو داخل اون ثبت کنید. هر بار که کاربر اپ رو باز کرد٬ ایمیلش چک می شه و اگه ثبت شده بود می فهمیم که کاربر وارد حساب کاربری خود شده. خب پس بنابراین شما برای logout کافیه اطلاعات shared preference رو خالی کنید. این واقعا نیاز به آموزش نداره.
در مورد امنیت اپ یه موردی رو جا داره که خیلی ساده عرض کنم٬ هیچوقت سمت اپ نمی تونه امن باشه و امنیت اپ در گروی سرور هست. در واقع این سرور هست که امنیت اپ رو می تونه تامین کنه. چون اپ و کدهاش کاملاٌ در دسترس خواهند بود. این تجربه ی من در شرکت های خیلی بزرگی مثل دیجی کالا هست و از خودم نمی گم.شما باید زمانی که داخل سایتتون اطلاعات حساس نگه می دارید حتماٌ از ssl استفاده کنید. زمانی که از ssl استفاده کنید دیگه هیچ کس نمی تونه به پارامتر های ارسالی از سمت کلاینت دسترسی داشته باشه چون کامل رمزگذاری خواهند شد. ولی اگه رمز گذاری داخل اپ انجام بشه من می تونم خیلی راحت اپ شمارو decompile کنم و بفهمم از چه رمزگذاری استفاده کردید و کل امنیت اپتون می ره زیر سوال!

ح حسین

با تشکر
برنامه اسنپ https://snapp.ir/ که در بازار هم موجود هست دقیقا از اکانت گوگل استفاده می کند و مشکلی هم ندارد .
در مورد ssl ؟
آیا اگه از ssl استفاده کنم پارامترها از داخل اپ به سرور رمزگذاری میشود ؟
چون شنیده بود ssl فقط برای پورت 80 هست . چطور باید کانفیگ ssl رو برای اپ تنظیم کنم تا ارتباطش با سرور امن باشه ؟
سوال دیگه و مهم : شما در دیجی کالا کار کردین ؟
آیا در شرکتهای بزرگ مثل اون از الگوهای طراحی استفاده میشه یا کدنویسی به همین شکلی که آموزش دادین هست ؟
و اینکه اگه کسی این دوره رو خوب گذرونده باشه آیا امید به استخدامی در چنین شرکتهای داشته باشه ؟
ممنون

سعید شاهینی

گوگل Sign in رو من قبلا استفاده کرده بودم و روی بعضی گوشها و سرویس دهنده های اینترنتی کار نمی کرد. منظورم این نبود که کلا کار نمی کنه. حتی با Firebase هم تست کردم که اون دیگه کلا تحریمه و کار نمی کنه.
اگه از ssl استفاده کنید هر اطلاعاتی که بین سرور و کلاینت جا به جا بشه رمزگذاری می شه. ssl نیازی به پیاده سازی سمت کلاینت نداره وفقط کافیه url رو بگذارید https. بله من دیجی کالا هستم در حال حاضر. از الگوهای طراحی استفاده می کنیم ولی بیشتر از این اجازه ی توضیح ندارم. بله اگر تیم نیازمند نیرو باشه

Amir Asghari

خب اگر از الگوهای طراحی استفاده میکنید حداقل کاش یک جلسه ای میذاشتید و اونهارو معرفی میکردید ، نمیگم آموزش میدادید حداقل معرفی میکردید
خب با این حساب شما هزار ساعت هم اینطوری آموزش بدید ما وقتی بریم به یک شرکت برنامه نویسی و توی تیم کار کنیم گیج میمونیم
انتظار ما اینه که شما راه درست و اصولی رو به ما یاد بدید

سعید شاهینی

داخل اینترنت سرچ کنید در مورد انواع الگوهای طراحی مقاله زیاد هست و نیازی به آموزش من واقعا نبود.

رضا

سلام و عرض ادب خدمت جناب شاهینی
من دقیقا همین اپ رو میخام فقط تصاویر رو رنگ بندیش رو عوض کنم و تصاویر و عکس و video های مربوط به خودم رو بگذارم کدوم یکی از جلسات کاملا پنل ادمین رو در اختیار قرار گذاشتین؟ و همچنین بعد از این مورد خروجی apk گرفتید؟

سعید شاهینی

تا آخر همین هفته نهایتا سورس کل پروژه روی سایت قرار می گیره و می تونید ازش استفاده کنید.

نیاز به لاگین

برای ارسال دیدگاه و یا پرسیدن سوال خود در این قسمت، باید در سایت لاگین شوید.