OfficeRuntime.Auth interface
包含与授权相关的 API 的接口。
注解
此接口中的方法等效于 Office.auth 接口中的方法。 如果将来添加新的身份验证类型,则只会将其添加到 接口中 Office.auth
。 为简单起见,整个文档中的代码示例都使用 Office.auth
。
示例
// Get the auth context object and use it to get an
// access token.
const authContext = OfficeRuntime.context.auth;
const accessToken = authContext.getAccessTokenAsync();
方法
get |
调用 Azure Active Directory V 2.0 终结点以获取令牌来访问加载项的 Web 应用程序。 使加载项能够识别用户。 服务器端代码可以使用此令牌通过 “代表”OAuth 流访问外接程序 Web 应用程序的 Microsoft Graph。 此 API 需要将加载项桥接到 Azure 应用程序的单一登录配置。 Office 用户使用组织帐户和 Microsoft 帐户登录。 Microsoft Azure 返回适用于两种用户帐户类型的令牌,以访问 Microsoft Graph 中的资源。 |
方法详细信息
getAccessToken(options)
调用 Azure Active Directory V 2.0 终结点以获取令牌来访问加载项的 Web 应用程序。 使加载项能够识别用户。 服务器端代码可以使用此令牌通过 “代表”OAuth 流访问外接程序 Web 应用程序的 Microsoft Graph。 此 API 需要将加载项桥接到 Azure 应用程序的单一登录配置。 Office 用户使用组织帐户和 Microsoft 帐户登录。 Microsoft Azure 返回适用于两种用户帐户类型的令牌,以访问 Microsoft Graph 中的资源。
getAccessToken(options?: AuthOptions): Promise<string>;
参数
- options
- OfficeRuntime.AuthOptions
可选。 接受 对象 AuthOptions
以定义登录行为。
返回
Promise<string>
承诺访问令牌。
注解
应用程序:Excel、Outlook、PowerPoint Word
重要说明:
在 Outlook 中,如果在 Outlook.com 或 Gmail 邮箱中加载加载项,则不支持此 API。
在 Outlook 网页版 中,如果使用 Safari 浏览器,则不支持此 API。 这会导致错误 13001 (“用户未登录到 Office”) 。
在 Outlook 网页版中,如果使用 displayDialogAsync 方法打开对话框,则必须关闭对话框,然后才能调用
getAccessToken
。
示例
async function getUserData() {
try {
let userTokenEncoded = await OfficeRuntime.auth.getAccessToken();
let userToken = jwt_decode(userTokenEncoded); // Using the https://www.npmjs.com/package/jwt-decode library.
console.log(userToken.name); // user name
console.log(userToken.preferred_username); // email
console.log(userToken.oid); // user id
}
catch (exception) {
if (exception.code === 13003) {
// SSO is not supported for domain user accounts, only
// Microsoft 365 Education or work account, or a Microsoft account.
} else {
// Handle error
}
}
}