OAuth2认证js客户端
OAuth2 authentication js client
我正在开发 outlook 插件。它是基于 JS 的,它使用 OAuth2 来验证用户。我正在使用 poupp window 打开像 google 这样的授权页面,azure ... 成功登录后我将其关闭。为了返回应用程序,我在弹出窗口的父 window 上注册了一个回调函数,可通过 window.opener
属性 访问。一切正常,但我想支持移动设备。
运行 这种插件可以通过 OWA for Devices 应用程序实现,该应用程序可以通过 Play 商店下载。
问题是 window.opener
属性 总是空的。所以我不能回拨申请。
还有其他方法如何回调应用程序吗?如何访问弹出窗口的父级 window?
解决该问题的正确方法是通过 WebSockets。您可以确保将凭据发布到单个客户端。在您的网络插件中,启动一个套接字
加载项 - 客户端 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 个组件:
- 插件 Javascript 侦听具有特定数据的凭据套接字(可以是 cookie guid 或电子邮件地址等唯一值)
- OAuth 完成后您将被重定向的网页,它将通过套接字将凭据(访问令牌/刷新令牌)传递到服务器。 (您仍然可以将其托管为与加载项一起部署的页面,重要的是它应该有一个单独的 JS 文件)
- 服务器套接字,它将获取凭据并将其传递给加载项客户端。
我正在开发 outlook 插件。它是基于 JS 的,它使用 OAuth2 来验证用户。我正在使用 poupp window 打开像 google 这样的授权页面,azure ... 成功登录后我将其关闭。为了返回应用程序,我在弹出窗口的父 window 上注册了一个回调函数,可通过 window.opener
属性 访问。一切正常,但我想支持移动设备。
运行 这种插件可以通过 OWA for Devices 应用程序实现,该应用程序可以通过 Play 商店下载。
问题是 window.opener
属性 总是空的。所以我不能回拨申请。
还有其他方法如何回调应用程序吗?如何访问弹出窗口的父级 window?
解决该问题的正确方法是通过 WebSockets。您可以确保将凭据发布到单个客户端。在您的网络插件中,启动一个套接字
加载项 - 客户端 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 个组件:
- 插件 Javascript 侦听具有特定数据的凭据套接字(可以是 cookie guid 或电子邮件地址等唯一值)
- OAuth 完成后您将被重定向的网页,它将通过套接字将凭据(访问令牌/刷新令牌)传递到服务器。 (您仍然可以将其托管为与加载项一起部署的页面,重要的是它应该有一个单独的 JS 文件)
- 服务器套接字,它将获取凭据并将其传递给加载项客户端。