Как да имплементирам oAuth в приложение с ASP.net 5 MVC и Web Api

+4 гласа
60 прегледа
попитан 2016 май 17 в .NET от Nikoleta.V. (4,090 точки)
Въпросът ми е относно ASP.net 5 и автентификацията. По-точно, опитвам да се интегрирам oAuth(2.0) като метод за логване (потребителите могат да се логна чрез него, ако така са се регистрирали, или директно през приложението ми). Следвах шаблона за ASP.Net 5 уеб приложение и постигнах нещо, което не е точно каквото искам

Имам ASP.net 5 MVC (1) за фронт-енд частта и ASP.net 5 web api приложение (2) за REST услугите, което изпраща информация на потребителския интерфейс.Нищо ново под слънцето.

Искам фронт-енда на MVC-то(1) да няма референции с Entity Framework или с неща като Sign in manager-а. Ако има как да е максимално просто. Имам логин екран и ми се ще ако може да се дава възможност за логване през Facebook или Google oAuth акаунти. Вместо да ползвам out of the box кода, който се предоставя от MS когато направиш нов ASP.net 5 web проект(защо да ми е лесно), искам да използвам моето Web Api да върши колкото може повече от работата(предполагам трябва да се промени нещо в приложение 1, за да се получи).

Целта ми е да запазя UI колкото може по-прост и да преместя сложните функционалности в Web Api-to.

Изпитвам трудности с взимането от демото на частта с oAuth и местенето и в Web Api-то, за да се използва от първото приложение. Някой правил ли го е това? Лоша идея ли е? Ако някой има пример за този подход в новото ASP.net 5 MVC ще съм благодарен!

1 отговор

0 гласа
отговорени 2016 май 18 от valeri.hristov (7,340 точки)

Препоръчвам ти да погледнеш Identity Server v4:

https://github.com/IdentityServer/IdentityServer4

Направен е върхи ядрото на .NET. OAuth компонентите, които виждаш в шаблоните за facebook, twitter и други, не са подходящи за използване с WebAPI, те са за интерактивни логини, базирани на браузър, а не за javascript.

Твоето приложение трябва да обработва регистрациите по нормален начин, след това да използва Identity Server-а да пусне bearer token, насочвайки го към identity базата, и после да го валидира в WebAPI-то.

Не бих ти препоръчал да го правиш с твой код.

...