【问题标题】:How to pass the scopes I need in the microsoftTeams.authentication.authenticate() method如何在 microsoftTeams.authentication.authenticate() 方法中传递我需要的范围
【发布时间】:2022-01-06 22:46:58
【问题描述】:

使用 vscode 团队工具包创建一个团队选项卡应用程序后,我看到在默认的 auth-start.html 文件中,脚本尝试从 URL 中提取范围(由 microsoftTeams.authentication.authenticate () 方法),但是我在文档中没有看到有关如何在此方法中传递这些范围的任何参考。

有人知道如何通过这些作用域吗?

【问题讨论】:

标签: authentication oauth-2.0 microsoft-teams


【解决方案1】:

在查看工具包时,我自己也想知道这一点,但我没有将它用于任何生产系统,因此从不费心去看太深。我确实看到在useTeamsFx.tsx 中它正在重定向到startLoginPageUrl,所以大概您需要将REACT_APP_START_LOGIN_PAGE_URL 设置为auth-start.html 的路径,因此您也可以将其设置为包含查询字符串。它需要应用程序 ID,因此您也需要设置它,但 useTeamsFx 也需要您设置的 REACT_APP_CLIENT_ID。因此,将所需的范围存储在代码或环境变量中可能是有意义的,然后组合发送给initiateLoginEndpoint 的值。基本上,而不是

var startLoginPageUrl = process.env.REACT_APP_START_LOGIN_PAGE_URL;
...
initiateLoginEndpoint: startLoginPageUrl
...

你可能会成功

var startLoginPageUrl = process.env.REACT_APP_START_LOGIN_PAGE_URL;
var scopes = process.env.REACT_APP_SCOPES;  // <-- this is added
...
initiateLoginEndpoint: `${startLoginPageUrl}?clientId=${clientId}&scope=${scopes}`
...

但这是未经测试的,所以不能保证。

在一个单独但相关的注释中,在我的示例项目中,在 auth-start 中,它指的是 MicrosoftTeams.min.js 的一个非常旧的版本(v 1.6,当前是 1.11)。我可能只有一个非常旧的 Teams Toolkit,但可能没有...

【讨论】:

    猜你喜欢
    • 2018-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-14
    • 2011-04-21
    • 2020-03-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多