Я разработал модуль для Dotnetnuke (8) с контентами WebAPI 2 через API DNN Этот API используется в Android-приложении. Чтобы получить доступ к функциям, заполняемым через API, пользователь должен пройти аутентификацию.Dotnetnuke OAUTH/OWIN внешний Вход с facebook
Я уже реализовал аутентификацию JWT (Json Web Token) с помощью WebAPI и логин с именем пользователя/паролем из приложения прекрасно работает с этим методом.
Теперь я также хочу, чтобы пользователи могли войти в систему через свой facebook-login и получить свое имя и адрес электронной почты и фотографию из своего профиля facebook для аутентификации и авторизации их через базу данных DNN-пользователей и разрешить/запретить их использование функции API.
Я много гулял и много читал в блогах и статьях о внешней аутентификации за последние несколько дней. Следующий очень интересный и уже дал мне ANN хорошее представление о том, как этот процесс может работать:
Registering Web API 2 external logins from multiple API clients with OWIN Identity
https://www.asp.net/web-api/overview/security/external-authentication-services
, но я не могу найти (и, кажется, я не действительно понимаю), если и как это можно сделать, работая с моим dnn-API и JSON-WebToken Auth Method в моем проекте.
Если кто-нибудь может помочь мне в правильном направлении, ваша помощь очень ценится. Спасибо заранее и наилучшими пожеланиями
Дон
EDIT: DNN-API предоставляет все JWT-функциональности я просто нужно определить пути и функции API. например: '
<Route("{controller}/{action}/{p1}")>
<AcceptVerbs("GET")>
<AllowAnonymous>
Public Function userInf(ByVal p1 As String) As HttpResponseMessage
Dim response As New HttpResponseMessage
Dim pID As Integer = DotNetNuke.Entities.Portals.PortalController.Instance.GetCurrentPortalSettings.PortalId
Dim objUserInfo As New DotNetNuke.Entities.Users.UserInfo
objUserInfo = DotNetNuke.Entities.Users.UserController.Instance.GetUserById(pID, CInt(p1))
If Not objUserInfo Is Nothing Then
If objUserInfo.UserID > 0 Then
response = Request.CreateResponse(System.Net.HttpStatusCode.OK, JsonConvert.SerializeObject("Username: " & objUserInfo.Username.ToString))
Else
' Not logged in
response = Request.CreateResponse(System.Net.HttpStatusCode.Unauthorized, "Not found")
End If
Else
' Not logged in
response = Request.CreateResponse(System.Net.HttpStatusCode.Unauthorized, "Not logged in")
End If
response.Headers.Add("Access-Control-Allow-Origin", CORS) ' <- Allow CORs !!!!
' response.Headers.Add("Access-Control-Request-Method", "*")
Return response
End Function
АНИ Путь для DNN Web-API для проверки подлинности: example.com/DesktopModules/JwtAuth/API/mobile/Login , где я прохожу имя пользователя и пароль в request- тело как json-объект (Документация на dnnsoftware [dot] com/docs/administrators/jwt /)
Это все работает так, как ожидалось. Дело в том, как сделать работу facebook логин в качестве внешнего входа работы вместе с моим JWT-AUTH
Спасибо Dmitriy за ваши предложения. Как я писал выше, я работаю над DotNetNuke CMS - API ... – user2488433