مشخصات مقاله
احراز هویت بوسیله Xamarin.Auth در Xamarin.Forms
نحوه استفاده از احراز هویت بوسیله Xamarin.Auth در Xamarin.Forms
ما همیشه در اکثر برنامه ها نیاز به احراز هویت داریم. فرآیند احراز هویت کاربر بوسیله سرویس هایی مانند Twitter، Facebook و غیره خیلی سخت به نظر می رسد.
در اینجا یک متد ساده از احراز هویت را با استفاده از Xamarin.Auth ایجاد می کنم. کامپوننت Xamarin.Auth تا حد زیادی در زمان احراز هویت صرفه جویی می کنند. در اصل کاردینال های احراز هویت برای همین منظور در نظر گرفته شده اند. تائید کنندگان اعتبار رابط کاربری را مدیریت کرده و با سرویس های احراز هویت ارتباط برقرار می کنند. این تائید کنندگان پارامترهای مختلفی را دریافت می کنند. مثل ClientID، دامنه مجوزهایش، URL مجوز، تغییر مسیر URL و غیره که همه ی اینها به تائید کنندگان اعتبار بستگی دارد.
.
var auth = new OAuth2Authenticator
(
clientId: "", // your OAuth2 client id
scope: "", // the scopes for the particular API you're accessing, delimited by "+" symbols
authorizeUrl: new Uri(""), // the auth URL for the service
edirectUrl: new Uri("")
);
می خواهیم به رویداد تکمیل احراز هویت گوش دهیم. این رویداد زمانی فعال می شود که کاربر با موفقیت شناسایی و یا منصرف شود.
auth.Completed += (sender, args) =>
{
if(args.IsAuthenticated)
{
var account =args.Account;
// Do success work
}
else
{
// The user cancelled
{
};
برای احراز هویت نیاز به برقراری ارتباط از طریق اینترنت می باشد. از آنجا که یک تاخیر زمانی وجود خواهد داشت لذا اگر این تاخیر از مدت زمان معینی فراتر رفت، رویداد های auth.Completed و auth.Error به صورت غیر همزمان فعال خواهند شد.
تمام اطلاعات در مورد احراز هویت موفقیت آمیز در args.Account وجود دارد. متد GetUI()،UINavigationController مربوطه در iOS و Intent مربوطه در Android را برمیگرداند.
//iOS
PresentViewController (auth.GetUI (), true, null);
//Android
activity.StartActivity(auth.GetUI(activity));
Xamarin.Auth داده های مربوط به login کاربر را با امنیت بالایی ذخیره می کند. بنابراین نیازی نیست همیشه برای احراز هویت:
// On iOS:
AccountStore.Create ().Save (args.Account, "Facebook");
// On Android:
AccountStore.Create (this).Save (args.Account, "Facebook");
AccountStore مسئولیت ثبت و ذخیره تمام اطلاعات اکانت های کاربران را به عهده دارد. این ذخیره سازی در iOS بوسیله KeyChain و در اندروید بوسیله KeyStore انجام می شود. حتی دوباره نویسی (overwrite) آن ها نیز تحت کنترل است.
بوسیله Xamarin.Auth کلیه ی سرویس های احراز هویت فراهم می شود. همچنین می توانیم خودمان با استفاده از متد FormAuthenticator.SignInAsync() تائید اعتبار نام کاربری و رمز عبور را ایجاد کنیم.