DNAPA 을 통해 WebAPI 2 엔드 포인트가있는 Dotnetnuke (8) 모듈을 개발했습니다.이 API는 Android-App에서 사용됩니다. API를 통해 채워지는 기능에 액세스하려면 사용자가 인증을 받아야합니다.Dotnetnuke OAUTH/OWIN 외부 로그인 페이스 북으로
WebAPI를 사용하여 JWT (Json Web Token) 인증을 이미 구현했으며이 방법으로 앱의 사용자 이름/비밀번호로 로그인해도 문제가 없습니다.
이제는 사용자가 facebook-login을 통해 로그인하고 facebook 프로필에서 자신의 이름과 이메일 및 사진을 가져 와서 DNN-Users-Database를 통해 인증하고 권한을 부여 할 수있게하고 싶습니다. API 함수.
지난 몇 일간 많은 외부 검색에 대한 블로그 포스트와 기사를 많이 읽었습니다. 이미 매우 흥미 다음과 것은 나에게 과정이 작동하는 방법 앤 좋은 통찰력을 준 :
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 메소드를 사용하여 프로젝트에서이 작업을 수행 할 수있는 방법과 방법에 대해 알고 있습니다.
누구든지 올바른 방향으로 나를 도울 수 있다면, 당신의 도움은 높이 평가됩니다. 미리 감사 및 종류
돈을
편집에 관해서는 : DNN-API는 난 그냥 API를 경로와 함수를 정의하는 데 필요한 모든 JWT-기능을 제공합니다. 예 : '
<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의 웹 API에 대한 API 경로가 인증입니다 : 내가 요청 -에 사용자 이름과 암호를 전달 example.com/DesktopModules/JwtAuth/API/mobile/Login (dnnsoftware 문서 [도트] com/docs/administrators/jwt /)
이 모든 것이 예상대로 작동합니다. 이제는 내 JWT-AUTH와 함께 외부 로그인 작업으로 페이스 북 로그인 작업을하는 방법입니다.
의견을 보내 주신 Dmitriy에게 감사드립니다. 위에서 쓴 것처럼 DotNetNuke CMS - API에서 작업 중입니다 ... – user2488433