احراز هویت قابل اعتماد و ایمن بخش مهمی از بسیاری از ادغام های شخص ثالث با WHMCS است. به عنوان مثال، اگر برنامهای مانند یک وبسایت از قبل نیاز به ورود کلاینتها به آن سیستم داشته باشد، ممکن است بخواهید مطمئن شوید که آن کلاینتها فقط برای دسترسی به بخشهایی از برنامه که با WHMCS تعامل دارند، مجبور نیستند دوباره وارد سیستم شوند. اخیراً، ما تغییراتی در نحوه مدیریت آن احراز هویت ایجاد کردهایم که نه تنها اجرای آن را سادهتر، بلکه ایمنتر میکند.
از زمان WHMCS 7.10، ما استفاده از CreateSsoToken API را برای هدایت کاربران از یک سیستم احراز هویت شده به حساب مشتری WHMCS توصیه می کنیم. این یک مکانیسم قوی و سادهتر برای هدایت کاربران از یک سیستم تأیید شده به یک حساب مشتری نقشهبرداری شده در نصب WHMCS شما است.توکن هایی برای کاربران و حساب ها از طریق API. همانطور که از روش قدیمی و منسوخ شده خود، AutoAuth، به این سیستم جدید می رویم، توسعه دهندگان شخص ثالث برای ادامه کار با WHMCS باید ادغام های خود را به روز کنند. در WHMCS 8.1، انتقال را با حذف AutoAuth کامل می کنیم.
برای بسیاری از نسخههای WHMCS، احراز هویت خودکار یا AutoAuth، تنها روش موجود برای احراز هویت شفاف کاربر از یک سیستم قابل اعتماد به WHMCS بود. این نیاز به ایجاد یک URL تغییر مسیر خاص داشت که WHMCS سپس آن را تأیید می کرد. اگر معتبر بود، WHMCS یک جلسه ورود ایجاد میکند و کاربر را به صفحهای که شما نشان دادهاید هدایت میکند.
همانطور که تکنولوژی تکامل یافته است، توکنهای ورود تک، همانطور که توسط CreateSsoToken
API جدید تولید میشوند، در همه جا حاضر شدهاند و امنیت قویتری نسبت به AutoAuth ارائه میدهند. آنها همچنین شامل محدودیتهای تکنولوژیکی کمتری هستند و پیادهسازی آنها سادهتر است، زیرا مانند برقراری هر فراخوانی دیگر WHMCS API است. همچنین میتوانید از این در ارتباط با سیستم کاربران و حسابهایی که در WHMCS 8.0 معرفی کردهایم، استفاده کنید و با استفاده از شناسه مشتری یا شناسه کاربری احراز هویت کنید.
در گذشته، AutoAuth برای ایجاد هش احراز هویت به یک راز نیاز داشت که تنها یک راز برای هر کاربر WHMCS مشخصی در دسترس بود. این مستلزم آن بود که چندین سیستم هنگام ایجاد یک جلسه از یک راز استفاده کنند، که برای بهترین شیوه های امنیتی بهینه نیست.
با این حال، اکنون، سیستمها میتوانند از مجموعهای از اعتبارنامههای API برای تولید نشانههای ورود واحد برای احراز هویت کاربران استفاده کنند. هر سیستم برای اعتبارنامه از API درخواست می کند، ملاحظات اعتماد و امنیت را تقسیم بندی می کند و به یک حساب مدیر اجازه می دهد از مجموعه های زیادی از اعتبارنامه ها استفاده کند. هیچ جفتی بین رمزهای امنیتی و کد سفارشی شما وجود ندارد و یکپارچگی شما را ساده و سازگار با جلو می کند. ایجاد
هر مجموعه ای از اعتبارنامه ها آسان استو هنگامی که یک سیستم از راه دور معین دیگر نباید صلاحیت صدور توکن های ورود به سیستم را داشته باشد، دور انداختن آن آسان است. در حالی که سیستم AutoAuth قبلی پیوندهایی را ایجاد می کرد که به مدت 15 دقیقه معتبر بودند، توکن های ورود واحد تولید شده از طریق آن CreateSsoToken
به یک دقیقه محدود می شوند.
توجه به این نکته مهم است که شما باید از این روش احراز هویت فقط در سیستم هایی استفاده کنید که کاملاً مورد اعتماد هستند و در موارد استفاده مناسب هستند. برای امنیت، باید هویت کاربر را قبل از رسیدن به این نقطه در کد خود تأیید کرده باشید، زیرا این روش احراز هویت کاربر و احراز هویت دو مرحلهای را دور میزند.
اگر یک توسعهدهنده هستید، حرکت از AutoAuth به توکنهای ورود به سیستم به آسانی اجرای یک تماس API است. فقط باید تماس برقرار کنید و سپس کاربر را به URL برگشتی هدایت کنید. WHMCS به طور شفاف کاربر را احراز هویت می کند و آنها را به مقصد شما هدایت می کند. برای جزئیات خاص و نمونه کدهای اضافی، میتوانید مستندات برنامهنویس CreateSsoToken API ما را بررسی کنید.
هنگامی که تماس API خود را برقرار می کنید، باید شناسه مشتری یا شناسه کاربر را وارد کنید. اگر آدرس ایمیلی دارید، همانطور که برای AutoAuth استفاده شد، میتوانید با تماس گرفتن با GetClients به دنبال شناسه مشتری منطبق باشید.API، با استفاده از پارامتر جستجو برای جستجوی آدرس ایمیل صحیح. نشانههای ورود واحدی که با شناسه مشتری ایجاد میکنید، به عنوان کاربری که مالک حساب آن حساب مشتری است، احراز هویت میشوند. در WHMCS 8.1 و جدیدتر، برای ایجاد یک نشانه ورود واحد که بر اساس شناسه کاربری احراز هویت میشود، میتوانید از API GetUsers
برای یافتن کاربران از طریق آدرس ایمیل نیز استفاده کنید.
کد PHP زیر از روش CURL برای ورود به یک کلاینت با شناسه 1 و بردن آنها به صفحه جزئیات محصول منطقه مشتری برای سرویسی با شناسه 1 استفاده می کند:
$ch = curl_init();
curl_setopt($ch، CURLOPT_URL، ‘https://www.example.com/includes/api.php’);
curl_setopt($ch، CURLOPT_POST، 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,
http_build_query(
array(
‘action’ => ‘CreateSsoToken’,
// به https://developers.whmcs.com/api/authentication
‘username’ => ‘IDENTIFIER_OR_ADMIN_USERNAME’
=> Pass مراجعه کنید ‘SECRET_OR_HASHED_PASSWORD’،
‘client_id’ => ‘1’،
‘destination’ => ‘clientarea:product_details’،
‘service_id’ => ‘1’،
‘responsetype’ =>curl_setopt($ch، CURLOPT_RETURNTRANSFER، 1);
$response = curl_exec($ch);
curl_close ($ch);
if (!$response) {
// مدیریت cURL یا خطاهای دیگر
، جدید \RuntimeException(‘Response Unnexpected’);
}
$responseData = json_decode($response، true);
if (!is_array($responseData)
|| !isset($responseData[‘result’])
|| $responseData[‘result’] !== ‘موفقیت’
) {
// مدیریت تماس ناموفق API
پرتاب جدید \RuntimeException(‘ پاسخ API ناموفق’);
}
// پاسخ API حاوی یک URL کامل است، شبیه به زیر، که میتوانید در هدر تغییر مسیر استفاده کنید:
// https://example.test/oauth/singlesignon.php?access_token=afaed4482ad1e6b75492cdd421cc458b1991a97c
$redirectURL = $responseData[‘redirect_url’] ?? ”;
if (!$redirectURL) {
// مدیریت دادههای پاسخ API از دست رفته
پرتاب new \RuntimeException(‘Unexpected API Data’);
}
header(‘Location:’ . $redirectURL);
خروج؛
به اطلاعات بیشتری نیاز دارید؟ میتوانید در اسناد برنامهنویس ما درباره CreateSsoToken API اطلاعات بیشتری کسب کنید .