私はOutlookアドインを開発しています。これはJSベースで、OAuth2を使用してユーザーを認証します。私はポップウィンドウを使用してGoogleのような認可のページを開くために、青空...成功ログイン後私はそれを閉じます。アプリケーションに戻るには、window.opener
プロパティを介してアクセス可能なポップアップの親ウィンドウにコールバック関数を登録します。すべてうまくいきますが、私はモバイルデバイスをサポートしたいと思います。 この種類のアドインを実行するには、Playストア経由でダウンロードできるOWA for Devicesアプリが必要です。 問題は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
: - あなたのWebアドインでは、ソケット
アドインを起動するクライアントはjavascriptのようになります。 Javascript
var socket = io('http://localhost');
var email = Office.context.mailbox.userProfile.email;
socket.emit('oauth_cred_providerName_'+email, {credentials});
サーバー - 選択した言語に応じて、資格データをソケット経由でアドインクライアントに渡します。
だから、理想的にあなたがここに3つの要素があります。
- アドインJavascriptの特定のデータを持つ資格ソケットにリッスン(クッキーのGUIDまたは電子メールアドレスなどのユニークな値にすることができ)
- OAuthの完了後にリダイレクトされるWebページ。ソケットを介してサーバーに資格情報(Access Token/Refresh Token)が渡されます。 (アドインでデプロイされたページとしてこれをホストすることもできますが、ここで重要なのは別のJSファイルを持つことです)
- サーバーソケットは、資格情報を取得してアドインクライアントに渡します。
はい、動作するようです。私はまた働くことができる可能性を見つけました。 Office.jsには、Office.context.ui。*経由でポップアップを表示できるAPIが用意されており、メッセージを送信してアプリケーションに返信します。 – thadam
これがあなたの問題を解決すると思うなら、あなたはそれを答えにしますか? –
- 1. ServiceStack OAuth2モバイルネイティブ認証
- 2. Laravel 5.4とoAuth2 - コントローラで認証されたクライアントを取得
- 3. 複数のクライアントをSpring OAuth2認証サーバに追加する
- 4. Google OAuth2 JSが認証コードを取得できない
- 5. Oauth2認証とSpringブート
- 6. 単体テストoAuth2認証コード
- 7. OAuth2帯域外ユーザ認証
- 8. JSPとOAUTH2の認証
- 9. OAuth2:認証コード許可フロー
- 10. Spring OAuth2とAngularJSアプリケーションの認証/認可
- 11. Swashbuckle OAuth2クライアント資格での承認フロー
- 12. Comクライアント認証
- 13. AngularJS認証/ oAuth2機能による認証
- 14. クライアントを登録せずにAzureAD(OAuth2)に対して認証しますか?
- 15. スプリングブート1.5.4 oauth2スプリングブート付きリソースサーバー1.2.4 oauth2認証サーバー
- 16. パッケージ "golang.org/x/oauth2"を使用してoauth2で認証する
- 17. websocketクライアントの認証?
- 18. クライアント、認証サーバ、ログアウト
- 19. 結合、クライアント認証
- 20. クライアントと認証サーバー
- 21. servicestackクライアント認証エンコードパスワード
- 22. ジャージのクライアント認証
- 23. 認証HTTP .NETクライアント
- 24. OAuth2クライアント(Python/Django)
- 25. ルビーのOAuth2クライアント
- 26. OAuth2パスワードの付与と基本認証
- 27. Node.jsのは、REST API認証とのOAuth2
- 28. JMeterでOauth2でGoogleに認証
- 29. Google OAuth2の認証とPHPのAPI
- 30. カスタム認証を使用するOAuth2プロバイダ
JSでOutlookアドインを作成すると、OAuthを作成する理由は何ですか?あなたはそれなしでoutlook rest APIを作ることができます。こちらをご覧ください:https://dev.office.com/docs/add-ins/outlook/use-rest-api?product=outlook – OriEng
@OriEngこのアプリケーションはサードパーティシステムからデータを取得します。認証が必要です。この第三者システムに対してユーザーを認証するには、oauthが使用されます。私はO365 rest apiエンドポイントを呼び出さない。 – thadam
私は今理解しています。私はモバイルでのサポートがアドインのために非常に限られていることを知っています。おそらくMDNフォーラムでは、モバイルでのサポートについてもっと詳しく知ることができます:https://social.msdn.microsoft.com/Forums/office/en-US/home?forum = appsforoffice – OriEng