Outlook addin을 개발하고 있습니다. JS 기반으로 OAuth2를 사용하여 사용자를 인증합니다. poupp 창을 사용하여 Google, azure ...와 같은 승인 페이지를 엽니 다. 성공 로그인 후 닫습니다. 다시 응용 프로그램으로 이동하려면 팝업의 부모 창에 window.opener
속성을 통해 액세스 할 수있는 콜백 함수를 등록합니다. 모든 것이 잘 작동하지만 모바일 장치를 지원하고 싶습니다. Play 스토어를 통해 다운로드 할 수있는 OWA for Device 앱을 통해 이러한 종류의 추가 기능을 실행할 수 있습니다. window.opener
속성은 항상 null입니다. 그래서 나는 다시 신청할 수 없다. 응용 프로그램으로 다시 전화하는 다른 방법이 있습니까? 팝업의 상위 창에 액세스하는 방법?OAuth2 인증 js 클라이언트
답변
올바른 문제 해결 방법은 WebSockets입니다. 단일 클라이언트에 자격 증명을 게시하고 있는지 확인할 수 있습니다. 클라이언트 - 사용자가 다시 귀하의 웹 사이트에 OAuth는 경험에서 리디렉션되면
웹 사이트,
var socket = io('http://localhost');
var email = Office.context.mailbox.userProfile.email;
socket.on('oauth_providerName_'+email, function(data){
// Callback when you receive the credential data.
});
// Pop the user to the OAuth frame
: - 웹 추가 기능에서 소켓
추가 기능을 시작하는 클라이언트 자바 스크립트는 같아야합니다 자바 스크립트
var socket = io('http://localhost');
var email = Office.context.mailbox.userProfile.email;
socket.emit('oauth_cred_providerName_'+email, {credentials});
서버 - 선택한 언어에 따라 소켓을 통해 클라이언트를 추가 기능 클라이언트로 전달합니다.
그래서 이상적으로 여기에 3 명을 가지고있다
- 추가 기능 자바 스크립트 (쿠키 GUID 또는 이메일 주소와 같은 고유 한 값을 할 수 있습니다) 특정 데이터와 자격 소켓을 감지
- OAuth가 완료된 후 리디렉션되는 웹 페이지. 소켓을 통해 자격 증명 (액세스 토큰/새로 고침 토큰)이 서버로 전달됩니다. (추가 기능을 사용하여 배포 한 페이지로 계속 호스팅 할 수 있습니다. 중요한 점은 별도의 JS 파일이 있어야한다는 것입니다.
- 자격 증명을 가져와 추가 기능 클라이언트에 전달하는 서버 소켓.
예, 작동 할 수있는 것처럼 보입니다. 나는 또한 일할 수있는 가능성을 발견했다. Office.js는 Office.context.ui. *를 통해 팝업을 표시하고 메시지를 보내 응용 프로그램으로 다시 통신 할 수있는 API를 제공합니다. – thadam
이것이 문제를 해결한다고 생각한다면 대답으로 표시 하시겠습니까? –
- 1. OAuth2 클라이언트 인증 스프링
- 2. OAuth2 다른 클라이언트 인증 방법
- 3. 봄 보안 Oauth2 클라이언트
- 4. 스프링 보안 oauth2 클라이언트
- 5. OAuth2 클라이언트 (Python/Django)
- 6. 스프링 OAuth2 클라이언트, CSRF 보호
- 7. KeyCloak을 사용하는 OAuth2 인증 인터페이스
- 8. 인증 코드 부여 유형 oAuth2
- 9. 인증 문제 Java에서 Oauth2
- 10. oauth2 - 인증 절차
- 11. oauth2 인증 뒤에 이미지로드
- 12. Oauth2 인증 팝업
- 13. OWIN OAuth2 인증
- 14. 봄 oauth2 인증 공급자
- 15. SiteScout oauth2 인증
- 16. ServiceStack에서 OAuth2 인증 구현
- 17. 레일 Oauth2 인증 수정
- 18. OAuth2 : "클라이언트"란 무엇입니까?
- 19. OAuth2 용 Spring 클라이언트
- 20. 액세스 토큰이없는 OAuth2 클라이언트
- 21. OAuth2 대역 외 사용자 인증
- 22. Dropbox에서 사용할 Oauth2 인증 지원
- 23. Durandal js 및 Facebook 클라이언트 측 인증
- 24. Angular JS SSL 클라이언트 측 인증
- 25. HttpClient를 사용하는 Java의 OAuth2 인증
- 26. OAuth2 용 클라이언트 측 JS 라이브러리는 보안 인증을 어떻게 유지합니까?
- 27. Google JS 클라이언트 라이브러리를 AngularJS에로드하십시오.
- 28. Oauth2 클라이언트 응용 프로그램에서 SSL 연결이 필요합니까?
- 29. OAuth2 암호 부여 및 기본 인증
- 30. Sencha touch 2 oauth2 인증
JS에서 Outlook 추가 기능을 만드는 경우 왜 OAuth를 만드시겠습니까? 그것 없이는 outlook rest API를 만들 수 있습니다. https://dev.office.com/docs/add-ins/outlook/use-rest-api?product=outlook – OriEng
@OriEng이 응용 프로그램은 타사 시스템에서 일부 데이터를 검색합니다. 어떤 인증이 필요합니다. 이 타사 시스템에 대해 사용자를 인증하려면 oauth가 사용됩니다. O365 나머지 API 끝점을 호출하지 않습니다. – thadam
이제 알겠습니다. 모바일에서의 지원은 추가 기능에 대해 매우 제한적이라는 것을 알고 있습니다. 아마 MDN 포럼에서 모바일 지원에 대한 자세한 정보를 찾을 수 있습니다. https://social.msdn.microsoft.com/Forums/office/en-US/home? forum = appsforoffice – OriEng