برنامه های مدرن iOS به طور فزاینده ای به کاربران که مدیریت هویت های متعدد - حساب های شخصی و حرفه ای رسانه های اجتماعی، پروفایل های ایمیل متمایز، یا نقش های مشتری و مدیر جداگانه خدمات می دهند، یک سیستم ورود چند حساب اجازه می دهد تا این کاربران بدون ورود مکرر به اعتبار، به طور قابل توجهی بهبود راحتی و حفظ، این مقاله یک راهنمای جامع برای طراحی و اجرای چنین سیستم در iOS، پوشش اجزای ضروری، اقدامات امنیتی گام به گام، و ملاحظات مشترک فراهم می کند.

مزایای سیستم Multi-Account Login

معرفی پشتیبانی چند حساب فراتر از راحتی ساده است، به طور مستقیم بر رضایت کاربر و معیارهای تعامل تاثیر می گذارد. درک طیف گسترده ای از مزایا کمک می کند تا اولویت بندی تلاش های توسعه.

  • تعویض بدون درز - کاربران می توانند بین کار و پروفایل های شخصی بلافاصله حرکت کنند، کاهش اصطکاک ناشی از چرخه های ورود / ورود به سیستم.
  • خستگی Credential خستگی - Storing و مدیریت چندین رمز عبور یک نقطه درد رایج است. Secure account پایداری در زنجیره کلید iOS نیاز به وارد کردن اعتبار بارها و بارها، کاهش احتمال رمز عبور یا رها کردن را به حداقل می رساند.
  • برنامه بهبود یافته - برنامه هایی که پشتیبانی از حساب های متعدد جذب کاربران قدرت که به برنامه برای کارهای مختلف متکی هستند، به ویژه برای ابزارهای سازمانی، مشتریان ایمیل و سیستم عامل های همکاری صادق است.
  • داده های Segregation (FLT:1) - داده های هر حساب (message، اعلان ها، ترجیحات) جدا شده است، جلوگیری از آلودگی تصادفی متقابل-contamination، این در محیط های تنظیم شده مانند مراقبت های بهداشتی یا مالی حیاتی است.

اجزای کلیدی معماری

ساخت یک سیستم حساب چند نفره قوی نیازمند برنامه ریزی دقیق در چندین حوزه است.هر جزء باید در هماهنگی برای ارائه یک تجربه قابل اعتماد و امن کار کند.

مدل داده های حساب

طراحی یک مدل که می تواند پروفایل های متعدد را بدون ایجاد توکن های تأیید هویت یا ترجیحات کاربر ذخیره کند.یک رویکرد معمولی از یک آرایه پایدار یا شرکت داده های هسته ای که حاوی شناسه حساب، نام های صفحه نمایش و توکن های رمزگذاری شده هستند، استفاده می کند.این مدل همچنین باید ردیابی کند که حساب در حال حاضر برای هدایت درخواست های شبکه و به روز رسانی های UI فعال است.

مدیریت جلسه

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

ذخیره سازی امن Credential Storage

iOS Keychain استاندارد de facto برای ذخیره داده های حساس مانند رمز عبور و توکن ها است.هر حساب باید با یک نام خدمات منحصر به فرد یا گروه دسترسی برای جلوگیری از مخلوط کردن ذخیره شود.

رابط کاربری برای تغییر حساب

UI به خوبی طراحی شده برای پذیرش الگوهای مشترک شامل یک آیکون پروفایل در نوار ناوبری است که لیستی از تنظیمات یا پایین صفحه را باز می کند که تمام حساب های امضا شده را انتخاب می کند. Swipe-to---to-حذف و گزینه های "اضافه حساب" تجربه را تکمیل می کند. UI باید بلافاصله اطلاعات حساب فعال را منعکس کند - حالت های بارگیری باید به طور محترمانه برای جلوگیری از تنگی ظاهری، به کار گرفته شوند.

داده های Synchronization و Isolation

هنگام تغییر حساب ها، برنامه باید داده های خاص را به آن حساب بارگذاری کند.این شامل لایه های شبکه، حافظه های محلی و حالت UI است که با استفاده از یک معماری مبتنی بر متن (به عنوان مثال، یک مدیر حساب فعلی تکتون) می تواند منطق سوئیچ را متمرکز کند.اطمینان حاصل کنید که درخواست های شبکه در انتظار برای حساب رها شده لغو شده یا حذف شده اند تا از نشت داده ها یا تصادفات جلوگیری شود.

راهنمای پیاده سازی مرحله به مرحله

مراحل زیر یک رویکرد عملی برای ادغام ورود چند حساب در یک برنامه iOS موجود را مشخص می کند. جزئیات را به روش تأیید هویت خاص خود (OAuth، ایمیل / رمز عبور، SSO و غیره) اقتباس کنید.

۱- مدل حساب را تعریف کنید

یک طبقه یا ساختار را ایجاد کنید که دارای ویژگی های حساب ضروری است: ، ، و این مدل را در یک فروشگاه پایدار امن ذخیره کنید (Keychain for توکن ها، کاربرDefaults با رمزگذاری برای غیر متادی).

۲- مدیریت حساب کاربری پیاده سازی

یک تکتون ( را توسعه دهید که مجموعه ای از حساب ها را مدیریت می کند.

  • یک حساب جدید پس از تأیید موفقیت آمیز اضافه کنید.
  • حساب فعال فعلی را باز کنید.
  • به یک حساب مختلف تبدیل کنید.
  • یک حساب را حذف کنید و توکن های آن را از زنجیره کلید پاک کنید.

۳- یکپارچه سازی ورود جریان

صفحه ورود موجود خود را برای پشتیبانی از هر دو نشانه اولیه و اضافه کردن یک حساب ثانویه پس از تأیید اعتبار، ذخیره توکن در زنجیره کلید با استفاده از یک کلید منحصر به فرد (به عنوان مثال، اضافه حساب به مدیر و ادامه حساب.

۴- ایجاد UI سوئیچ کننده حساب

یک کنترل کننده یا برگه دید را طراحی کنید که تمام حساب ها را نمایش می دهد، شامل یک دکمه “+” برای شروع ورود به حساب جدید است، زمانی که کاربر یک حساب را انتخاب می کند، تماس بگیرید (FLT-7) که حساب فعال را به روز می کند، UI را بارگذاری می کند و لایه های شبکه را با اعتبار های جدید باز می کند.

5- اصلاح دولت

در راه اندازی برنامه، آخرین حساب فعال از ذخیره سازی مداوم را بازیابی کنید. باید تمام حساب های ذخیره شده (به استثنای توکن ها) را بارگیری کرده و حساب فعال را بدون نیاز به تعامل کاربر تنظیم کند.

۶- درخواست های شبکه هماهنگ

لایه شبکه خود را به روز کنید (به عنوان مثال، URLSession، Alamofire) به طور خودکار شامل توکن حساب فعال در هدر مجوز است.هنگامی که حساب های تغییر، هر گونه درخواست در انتظار که به توکن قدیمی بستگی دارد را بی اعتبار می کند.

امنیت و حریم خصوصی بهترین شیوه ها

سیستم های چند حساب سطح حمله را افزایش می دهند. Adhere برای [FOWASP Mobile Security دستورالعمل های محافظت از داده های کاربر.

  • از زنجیره کلید با کنترل دسترسی [FLT 1] استفاده کنید، برای تنظیم کنید و تأیید بیومتریک برای عملیات حساس مانند اضافه کردن یک حساب دوم را در نظر بگیرید.
  • هرگز در UserDefaults پنهان نکنید - حتی اگر رمزگذاری شده باشد، توکن ها در زنجیره کلید متاداده مانند نام صفحه نمایش می توانند در UserDefaults ذخیره شوند اما از جمله اسرار اجتناب کنند.
  • گواهی پینینگ [FLT 1] - جلوگیری از حمله های انسان-در وسط هنگام تبادل توکن در هنگام ورود یا تازه سازی.
  • داده های شفاف در حساب حذف - هنگامی که یک کاربر حساب را حذف می کند، تمام داده های محلی مرتبط (caches، فایل ها، نهادهای داده های هسته ای) را حذف کنید تا از نشت اطلاعات باقی مانده جلوگیری شود.
  • مجوز حریم خصوصی [FLT 1] - اگر برنامه شما از دوربین، مکان یا تماس استفاده می کند، اطمینان حاصل کنید که مجوز در صورت لزوم توسط منطق برنامه شما مورد استفاده قرار می گیرد.

چالش های مشترک و راه حل ها

درگیری های جدید Token Refresh

اگر دو توکن حساب به طور همزمان منقضی شود، درخواست های تجدید همزمان ممکن است باعث ایجاد شرایط نژادی شود. راه حل: پیاده سازی یک صف سریال برای عملیات تازه سازی توکن در هر حساب و استفاده از قفل برای جلوگیری از اضافه شدن.

Data Overlap در داده های Core

حساب های سوئیچ در حالی که فروشگاه های داده های Core به اشتراک گذاشته می شوند می توانند داده ها را مخلوط کنند. از هماهنگ کننده های فروشگاه جداگانه یا URL های فروشگاه های حساب کاربری جایگزین استفاده کنند، همه ی اشخاص را با شناسه حساب کاربری و پرس و جو فیلتر بر اساس آن برچسب گذاری کنید.

قابلیت های Command

در صورتی که به صورت صحیح به صورت زیر به حساب کاربری پرداخت شود، به صورت زیر به آن اشاره می شود.(FLT:0)

عملکرد در Switch

Reload کل UI را می توان janky (FLT:0) راه حل: استفاده از یک مدل دید سبک است که منابع داده را بدون ایجاد مجدد کنترل کننده های دید تغییر می دهد، نشان دهنده بارگذاری فقط اگر سوئیچ باعث تماس های شبکه می شود.

تست سیستم Multi-Account

تست های دقیق مانع از اشکالات ظریف می شوند:

  • تست های UI را ایجاد کنید که به دو حساب وارد شوند، بین آنها تغییر کنند و تأیید کنند که داده های هر حساب به درستی نمایش داده می شوند.
  • اعتبار توکن برای یک حساب در حالی که دیگری معتبر باقی مانده است.
  • تست با چندین برنامه خاتمه و بازسازی های دولتی پس زمینه
  • بررسی کنید که حذف یک حساب بر توکن ها یا داده های حساب های دیگر تأثیر نمی گذارد.

نتیجه گیری

پیاده سازی یک سیستم چند حساب کاربری در برنامه های iOS نیاز به برنامه ریزی دقیق معماری، شیوه های امنیتی قوی و یک رابط کاربر پسند دارد.با استفاده از Keychain و خدمات تأیید اعتبار اپل و با پیروی از مراحل و بهترین شیوه های ذکر شده در اینجا، توسعه دهندگان می توانند یک تجربه یکپارچه را ارائه دهند که نیازهای کاربران قدرت را در حالی که حفظ یکپارچگی داده و امنیت با یک مدیر مدل روشن و روشن شروع می کند، تست UI به طور گسترده ای در سراسر اطمینان از همه موارد.