مودل: توسعه پلاگین احراز هویت کاربر توسط وب سرویس از نرم افزار مدیریت آموزش ایده

سیستم ورود (احراز هویت کاربر) در مودل قابل گسترش توسط پلاگین‌ها است. برای اهل فن واضح است که این ویژگی آن را بسیار قدرتمند و راه نفوذ آن را برای استفاده در راه‌کارهای جامع سازمانی هموار می‌کند.

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

دید کلی

در مودل برای جدول user فیلدی با نام auth وجود دارد که تعیین می‌کند برای احراز هویت هر نام‌کاربری (username) باید از کدام پلاگین احراز هویت (Authentication plugin) استفاده کرد.

به این ترتیب بعد از ورود اطلاعات در فرم لاگین، مودل به صورت داخلی با توجه به نام کاربری، پلاگین مشخص شده در فیلد auth را فراخوانی کرده و فرآیند احراز هویت را با آن ادامه می‌دهد.

در صورتی که نام کاربری در جدول user در مودل وجود نداشته باشد، فرآیندی برای کشف اطلاعات user از منابع خارجی به ازای تک تک پلاگین‌های فعال انجام می‌شود. [+]

  1. متد user_login را فراخوانی می‌کند. در صورتی که خروجی متد false باشد، به این معناست که این پلاگین کاربری با آن نام کاربری و رمز عبور را در خود ندارد. پس مودل از روی این پلاگین جهش کرده و تلاش برای احراز هویت کاربر را با پلاگین بعدی انجام می‌دهد.
  2. اگر متد user_login از یک پلاگین به اطلاعات وارد شده جواب مثبت داد، متد دیگری با نام update_user_record فراخوانی شده تا بقیه اطلاعات شامل نام، اطلاعات تماس و ... را دریافت کند.
  3. ایجاد رکورد کاربر در جدول user در صورتی که قبلا موجود نباشد.
  4. فراخوانی متد sync_roles از پلاگین.
  5. فراخوانی متد user_authenticated_hook از پلاگین‌های فعال دیگر.

 

افزودن نظر جدید