问题标签 [react-aad-msal]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
58 浏览

reactjs - Azure Active Directory (AAD) 身份验证和授权流程?

基本上,我已经在我的 ReactJS 应用程序中通过 MSAL.js 实现了身份验证。但我不确定我所实施的是否正确。想知道是否有人可以提供任何指导和/或更正:

我的 index.js 中有这个片段设置

在此处输入图像描述

在 App 组件(功能组件)中,我使用 useMsal() 来检索 MSAL 上下文。在 useEffect( ) 挂钩中,我正在检查用户是否已通过身份验证:

如果经过身份验证,那么我会尝试发送授权请求。

请注意,我知道我已成功通过身份验证,因为我可以通过 Azure Graph API 检索用户的个人资料图像。换句话说,请注意我没有显式调用任何登录方法。但也许我需要这样做?

我是否需要通过 MSAL 实例/上下文显式调用登录?

0 投票
1 回答
38 浏览

reactjs - 在浏览器中点击 URL 时直接重定向到 AAD 登录页面

在 React 中使用 MSAL 2.0,我们可以使用以下方法轻松实现重定向到登录页面

  1. 使用弹窗登录
  2. 使用重定向登录

但是这两种方法都可以在登录/登录按钮操作上执行。

就我而言,我想将我的 React 应用程序直接重定向到登录页面,当 URL 在浏览器中被点击时,即没有按钮操作。

此外,在进行重定向时,我还需要传递我的多个范围,以获得用户的同意。

我做了一些研究,但没有找到任何可行的解决方案。请问有人可以帮我吗?

0 投票
1 回答
219 浏览

azure-active-directory - AADSTS500112:回复地址与请求授权码时提供的回复地址不匹配

我通过互联网搜索但我找不到这个特定的问题。

AADSTS500112:回复地址“http://localhost:3000/#/training”与请求授权码时提供的回复地址“http://localhost:3000/”不匹配。

我收到此错误,我在应用程序中的配置和重定向 uri 是 http://localhost:3000/#/training

我不知道为什么会出现此错误。

0 投票
1 回答
55 浏览

reactjs - react-aad-masal 令牌更新问题

在我的一个反应项目中,我正在使用react-aad-msal身份验证。但是,似乎我遇到了以下问题:

  1. 第一次尝试登录,它的工作原理
  2. 一小时后令牌过期,无法访问应用程序
  3. 需要清除缓存/浏览器历史,重新运行react app才能访问页面

有没有人遇到过类似的问题。这是 authProvider.js 文件的样子:

在此先感谢您的帮助。

0 投票
0 回答
50 浏览

dynamics-crm - loginPopup 不会重定向到原始选项卡中的 redirectUri,而是在 D365 中的 Popup 上打开 redirectUri

我在基于反应的 SPA 和导入到画布应用程序中的 PCF 组件中使用 MSAL,并且此画布应用程序嵌入到 Dynamic365 现场服务 CRM 中。我创建了一个 Azure AAD 应用程序注册并在单页应用程序中添加了这些 redirectUri

  1. 本地主机:3001
  2. *.crm.dynamics.com/main.aspx //main.aspx 因为我之前提到过这个问题 #190。

所以当我在 localhost:3001 中打开我的应用程序时,它工作正常。它会弹出一个登录窗口,要求登录,并在关闭时给出一个访问令牌作为响应。但在第二种情况下,弹出窗口不会重定向回它的主页,而是在弹出窗口本身中打开。

我在 D365 现场服务中使用的 PCF 组件中使用了这个。

复制步骤

  1. 使用上述代码片段创建一个 PCF 组件。
  2. 在画布应用程序中添加此 PCF 组件。
  3. 在 D365 Field Service CRM 中嵌入新创建的画布应用程序。
  4. 当您在此 *.crm.dynamics.com/main.aspx 上运行的 D365 Field Service CRM 中打开 PCF 组件时,它将打开一个登录弹出窗口。我们必须从该弹出窗口登录。
  5. 此弹出窗口不会关闭,而是仅在弹出窗口内打开重定向 URL。 在此处输入图像描述 我已经像这样在 App 注册中添加了重定向 URI 在此处输入图像描述

我已经使用了每个变体,例如 *.crm.dynamics.com/main.aspx 和 *.crm.dynamics.com/ 和 *.crm.dynamics.com。

预期行为

弹出一个登录弹出窗口,在用户登录后弹出窗口自行关闭并且 loginPopup 承诺解决(或拒绝)。

实际行为

弹出一个登录弹出窗口,在用户登录后,弹出窗口重定向回我的站点。

在此处输入图像描述