[英]OAuth2 authentication js client
我正在開發一個Outlook插件。 它基於JS,使用OAuth2對用戶進行身份驗證。 我正在使用poupp窗口打開google,azure等授權頁面,成功登錄后,我將其關閉。 回到應用程序中,我正在彈出窗口的父窗口上注冊一個回調函數,該窗口可通過window.opener
屬性進行訪問。 一切正常,但是我想支持移動設備。 要通過OWA for Devices應用運行這種插件,可以通過Play商店下載。 問題在於window.opener
屬性始終為null。 因此,我無法調回應用程序。 還有其他方法可以回調應用程序嗎? 如何訪問彈出窗口的父窗口?
解決該問題的正確方法是通過WebSockets。 您可以確保將憑據發布到單個客戶端。 在您的Web插件中,啟動一個套接字
加載項-客戶端Javascript應該如下所示:
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
將用戶從OAuth體驗重定向回您的網站后,
網站-客戶端Javascript
var socket = io('http://localhost');
var email = Office.context.mailbox.userProfile.email;
socket.emit('oauth_cred_providerName_'+email, {credentials});
服務器-根據您選擇的語言,將憑據數據通過套接字傳遞給外接程序客戶端。
因此,理想情況下,這里有3個組成部分:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.