فراموشی/تغییر رمز عبور - Unity

در این بخش از مستند می‌خواهیم با رمزعبور کاربران کار کنیم و دو سناریو بسیار رایج را بیاموزیم:

پیش‌نیازها

  1. شما با سرویس کاربران بکتوری آشنایی دارید. در غیر این صورت به معرفی سرویس کاربران مراجعه کنید.
  2. شما راه‌اندازی SDK بکتوری در یونیتی را انجام داده‌اید.

تغییر رمز عبور

تغییر گذرواژه فقط برای کاربران معمولی معنی‌دار است و برای کاربران مهمان ممکن نیست. جهت تغییر گذرواژه، کاربر شما باید رمزعبور فعلی خود را بداند و شما موظف‌اید مقدار آن را از طریق واسط کاربری یونیتی به همراه رمزعبور جدید دریافت کنید. شما می‌توانید با فراخوانی تابع ChangePasswordInBackground درخواست تغییر گذرواژه را به سرور بکتوری ارسال کنید. در صورت پایان عملیات (موفقیت و یا شکست) تابع callback فراخوانی شده و شما می‌توانید پیام مناسب به کاربر خود نشان دهید. برای نمونه در کد زیر ما رمز عبور کاربر فعلی سیستم را تغییر می‌دهیم:

// Getting old and new password
string oldPassword = "OLD-PASSWORD";
string newPassword = "NEW-PASSWORD";

// Requesting change password to backtory
BacktoryUser.CurrentUser.ChangePasswordInBackground(oldPassword, newPassword,
	changePassResponse =>
{
	// Operation done (success or fail), handling it:
	if (changePassResponse.Successful) {
		// Password changed successfully
		Debug.Log("Your password successfully changed.");
	}
	else if (changePassResponse.Code == (int) BacktoryHttpStatusCode.Forbidden) {
		// value "OLD-PASSWORD" is not your real old password
		Debug.Log("Old password was incorrect.");
	}
	else {
		// Operation generally failed, maybe internet connection issue
		Debug.Log("Request failed.");
	}
});

در صورتی که عملیات موفق باشد مقدار changePassResponse.Successful برابر true خواهد بود. در غیر این صورت عبارت changePassResponse.Code مقدار کد خطا است که در تغییر رمز عبور کد خطا یکی از موارد جدول زیر خواهد بود:

Tables Description
200-OK Login was successfull
403-Forbidden Your old password was wrong
500-Internal Server Error Data access was unsuccessful
503-Service Unavailable Your service is disabled

فراموشی رمزعبور

فرض کنید کاربری که نام کاربری خود را می‌داند، رمز عبورش را فراموش کرده است. در این صورت می‌تواند از طریق کد زیر آن را بازیابی کند:

// Requesting forget password to backtory
BacktoryUser.ForgotPasswordInBackground ("<USERNAME>", response => {
    if (response.Successful) {
        Debug.Log("Go to your mail inbox and verify your request.");
    } else {
        Debug.Log("failed; " + response.Message);
    }
});

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

مهم: دقت کنید که برای برآورده سازی نیاز «فراموشی رمز عبور» حتما باید کاربران به هنگام ثبت‌نام ایمیلی را فراهم کرده باشند.