چه تکنولوژی می‌خواهید یاد بگیرید؟

نظرات و انتقادات خود را با ما در میان بگذارید.

آپدیت روزانه

بیش از 1000 پست آموزشی

نیازهای روز

احزار هویت کاربران با استفاده از شبکه Yahoo در ASP.Net MVC

در این مقاله با استفاده از شبکه اجتماعی یاهو جهت احراز هویت کاربران در پروژه ASP.Net MVC خواهیم پرداخت.

لوگو یاهو

 

مقدمه:

در صورتی مقالات قبلی رو دنبال کرده باشید با چند شبکه اجتماعی جهت هویت سنجی کاربران آشنا هستید. در این مقاله قصد داریم جهت هویت سنجی کاربران در پروژه ASP.Net MVC از شبکه اجتماعی یاهو جهت احراز هویت کاربران استفاده نمایم.

در این بخش جهت ورود اعضا با شبکه Yahoo به سایت با حساب کاربری لازم است یک درخواست Application در سایت یاهو ایجاد نمایم. بعد از ثبت موفقیت آمیز درخواست یک Client ID و Client Secret به شما تعلق می‌گیرد و نهایت در پروژه ASP.Net MVC تعریف خواهد شد.

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

ایجاد پروژه جدید:

در صورتی که پروژه از قبل ایجاد نکرده‌اید، کافیست با کلیک بر روی Project در زیر منو New ویژوال استودیو کلیک کنید تا دیالوگ ایجاد پروژه جدید نمایان شود.

 

ایجاد پروژه جدید در ویژوال استودیو

 

 در تب Templates آیتم Web را کلیک و ASP.Net Application جهت ایجاد پروژه جدید انتخاب، نام و مسیر پروژه وارد نموده و بر روی دکمه OK کلیک کنید.

 

ایجاد پروژه جدید ASP.Net MVC در ویژوال استودیو

 

 در دیالوگ انتخاب نوع پروژه مطما باشید قالب MVC و Authentication بر روی “Individual Accounts”  فعال باشد.

انتخاب پروژه و تنظیم کردن Individual Accounts

 

 بعد از ایجاد پروژه بر روی Solution کلیک کنید، دکمه Alt+Enter را فشار دهید تا دیالوگ تنظیمات نمایان گردد. تب Web را انتخاب و آدرس اجرای پروژه را در جایی یاداشت کنید(لازم است در تنظیمات LinkedIn اعمال شود.)

دیالوگ تنظیمات سولوشن انتخابی ویژوال استودیو

 ایجاد برنامه جدید در یاهو:

  جهت هویت سنجی با استفاده از این شبکه لازم است یک برنامه جدید ایجاد کنید، قبل از هر کاری یک حساب کاربری در Yahoo ایجاد نماید سپس با حساب ایجاد شده در این شبکه به بخش Yahoo Developer Network website مراجعه و بر روی دکمه YDN Apps در زیر منو My Apps کلیک کنید.

yahoo-ydn apps

 

در این صفحه لیست از برنامه‌های ایجاد شده را مشاهده خواهید کرد. برای ایجاد پروژه جدید بر روی دکمه Create an app کلیک کنید:

yahoo-all my apps

 

برای ایجاد برنامه در یاهو لازم است لینک برگشتی (callback domain) مشخص شود، اما متاسفانه امکان استفاده از localhost به عنوان لینک برگشتی در این سرویس موجود نیست. یاهو همچنین صحت دامنه را برسی خواهد کرد بنابراین حتی اگر شما لینکی غیر از localhost ثبت نماید، در زمان تست برنامه به صورت لوکال ASP.Net Identity زمان اجرا localhost را به عنوان دامنه پیشفرض مشخص خواهد کرد و یاهو اجازه نخواهد داد.

به این معنی است که شما را به برخی از مسائل هنگامی که مایل به ثبت نام و تست برنامه به صورت محلی بر روی کامپیوتر هستید اجرا خواهد شد که دو راه حل وجود دارد:

  1. استفاده از ابزاری مشابه Ngrok، که در اینجا وب سایت Twilio مقاله در رابطه با نحوه استفاده از این ابزار منتشر نموده است(Configure Windows for Local Webhook Testing Using ngrok).
  2. راه دوم که ساده هم می‌باشد استفاده از Installed Application بجای Web Application در بخش نوع انتخابی برنامه است.

برای استفاده از این سرویس در پروژه نهایی لازم است Web Application انتخاب و callback domain به صورت صحیح وارد گردد. اما در این مقاله جهت آسانی کار از روش دوم که بسیار ساده هم می‌باشد استفاده خواهد شد.

نام برنامه را مشخص و سایر فیلدها را خالی رها کنید.

yahoo-create-app

 

نکته: توجه کنید در پروژه اصلی لازم است نوع برنامه Web Application انتخاب شود.

در بخش API Permissions بخش‌های که لازم است را انتخاب و سطح دسترسی را مشخص سازید در نهایت بر روی دکمه Create App کلیک کنید.

yahoo-create-app-2

بعد از ثبت برنامه یک Client ID و  Client Secret به شما تعلق خواهد گرفت این دو کد را جهت تعریف در برنامه بخاطر بسپارید.

yahoo-client-id-and-secret

فعال سازی هویت سنجی با استفاده از یاهو در پروژه ASP.Net MVC:

در این بخش دستور Owin.Security.Providers در کنسول کپی و اجرا کنید تا بسته ناگت نصب شود، همچنین می‌توان بر روی Reference کلیک راست نموده و Manage NuGet Packages را انتخاب کنید تا دیالوگ Nuget باز شود و در پنل جستجو بسته ناگت Owin.Security.Providers را جستجو و آن را نصب کنید.

owin.security.providers nuget package

 

فایل Startup.Auth در پوشه App_Start ریشه پروژه باز کنید. دستور زیر را به بخش Usingهای فایل اضافه نماید:

using Owin.Security.Providers.Yahoo; 

جهت فراخوانی سرویس Yahoo لازم است متد app.UseYahooAuthentication و مقدار ClientID و Client Secret به عنوان پارامتر به این متد پاس داده شود.

app.UseYahooAuthentication(
    "dj0yJmk9Sk11TWNjNDVXcHltJmQ9WVdrOU5FSklZakJoTkRJbWNHbzlNQS0tJnM9Y29uc3VtZXJzZWNyZXQmeD1mZg--",
    "47af0a79e80c98d03eda5270c4099c5b883b3459");

مطما باشید مقادیر وارد شده برای Client ID و Client Secret همان مقادیر می‌باشد که بعد از ثبت نهایی برنامه در یاهو برای شما اختصاص یافت.

تست برنامه:

پروژه رو اجرا کنید و به صفحه لاگین وارد شوید:

use yahoo service to log in.

 

بر روی دکمه Yahoo کلیک کنید تا به صفحه هویت سنجی یاهو هدایت شوید، ایمیل و پسورد حساب کاربری در یاهو را وارد و بر روی Allow access کلیک کنید.

yahoo-authorizing access

 

در صورت کلیک بر روی Allow Access به سایت هدایت کننده باز خواهید گشت، البته بعد از برگشت لازم است ایمیل خود را در بخش ثبت نام وارد کنید، ایمیل وارد شده به عنوان نام کاربری درج خواهد شد، البته در سناریوهای ممکن است بجای ایمیل نام کاربری از کاربر درخواست شود، که در این صورت کافیست مقدار Label ایمیل به Username تغییر یابد(توجه شود الزامی است نام وارد شده برسی شود از قبل در دیتابیس وجود نداشته باشد).

نکته: امکان دریافت ایمیل در این مقاله وجود ندارد، و برای کاربر الزامی است ایمیل خود را وارد نماید.

associate your yahoo account

 

حال با وارد نمودن ایمیل و کلیک بر روی Register در سایت ثبت نام خواهید شد.

مآخذ:

برای دانلود پروژه اینجا کلیک کنید.

...

امید نصری

0 نظر:

تعداد دیدگاه‌های کاربران : 0 دیدگاه
مهمان گرامی! برای ارسال نظر نیاز است وارد سایت شوید.


You must log on to comment.