You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Office加载项中安全持久化OAuth2访问令牌

Office加载项自定义OAuth:令牌传递与存储方案

一、无Cookie重定向的令牌安全传递方案

直接利用Office对话框的消息通信机制即可实现,流程如下:

  • 后端生成令牌后,重定向到你加载项域名下的静态回调页面,将令牌作为URL参数传入(仅做中转,后续立即清理)
  • 回调页面加载完成后,调用Office.context.ui.messageParent()把令牌发送给加载项主页面
  • 主页面在调用displayDialogAsync时,通过监听dialogMessageReceived事件接收令牌,收到后先验证令牌签名,确认有效再处理
  • 最后调用dialog.close()关闭对话框

这种方式完全规避了跨域Cookie无法读取的问题,因为对话框和主页面同域,且Office框架的消息传递是经过安全校验的。另外也可以让后端直接返回包含令牌的JSON响应给对话框内的页面,再通过messageParent传递,前提是这个页面必须是你完全可控的,防止XSS风险。

二、适配桌面与Web客户端的令牌安全存储

推荐两种靠谱方案:

  • 加密后的localStorage:Office加载项的localStorage是沙箱隔离的,仅当前加载项可访问,比普通网页的localStorage安全度更高。存储前必须用AES等算法对令牌加密,密钥可以通过后端接口动态获取(别硬编码在前端代码里)或者由用户信息派生,绝对不能明文存储。
  • 自定义加密存储模块:封装一套结合加密算法的存储逻辑,基于localStorage实现。桌面端的加载项localStorage数据会存在本地沙箱目录,和浏览器的localStorage完全隔离;Web端则遵循同源策略,只有你的加载项能访问。

注意:别用sessionStorage,会话结束就丢数据;也绝对不能用Settings对象,官方明确不推荐做敏感数据存储。


内容的提问来源于stack exchange,提问作者Niko Mendo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 13:40:27