问题标签 [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.
reactjs - Azure Active Directory (AAD) 身份验证和授权流程?
基本上,我已经在我的 ReactJS 应用程序中通过 MSAL.js 实现了身份验证。但我不确定我所实施的是否正确。想知道是否有人可以提供任何指导和/或更正:
我的 index.js 中有这个片段设置
在 App 组件(功能组件)中,我使用 useMsal() 来检索 MSAL 上下文。在 useEffect( ) 挂钩中,我正在检查用户是否已通过身份验证:
如果经过身份验证,那么我会尝试发送授权请求。
请注意,我知道我已成功通过身份验证,因为我可以通过 Azure Graph API 检索用户的个人资料图像。换句话说,请注意我没有显式调用任何登录方法。但也许我需要这样做?
我是否需要通过 MSAL 实例/上下文显式调用登录?
reactjs - 在浏览器中点击 URL 时直接重定向到 AAD 登录页面
在 React 中使用 MSAL 2.0,我们可以使用以下方法轻松实现重定向到登录页面
- 使用弹窗登录
- 使用重定向登录
但是这两种方法都可以在登录/登录按钮操作上执行。
就我而言,我想将我的 React 应用程序直接重定向到登录页面,当 URL 在浏览器中被点击时,即没有按钮操作。
此外,在进行重定向时,我还需要传递我的多个范围,以获得用户的同意。
我做了一些研究,但没有找到任何可行的解决方案。请问有人可以帮我吗?
azure-active-directory - AADSTS500112:回复地址与请求授权码时提供的回复地址不匹配
我通过互联网搜索但我找不到这个特定的问题。
AADSTS500112:回复地址“http://localhost:3000/#/training”与请求授权码时提供的回复地址“http://localhost:3000/”不匹配。
我收到此错误,我在应用程序中的配置和重定向 uri 是 http://localhost:3000/#/training
我不知道为什么会出现此错误。
reactjs - react-aad-masal 令牌更新问题
在我的一个反应项目中,我正在使用react-aad-msal
身份验证。但是,似乎我遇到了以下问题:
- 第一次尝试登录,它的工作原理
- 一小时后令牌过期,无法访问应用程序
- 需要清除缓存/浏览器历史,重新运行react app才能访问页面
有没有人遇到过类似的问题。这是 authProvider.js 文件的样子:
在此先感谢您的帮助。
dynamics-crm - loginPopup 不会重定向到原始选项卡中的 redirectUri,而是在 D365 中的 Popup 上打开 redirectUri
我在基于反应的 SPA 和导入到画布应用程序中的 PCF 组件中使用 MSAL,并且此画布应用程序嵌入到 Dynamic365 现场服务 CRM 中。我创建了一个 Azure AAD 应用程序注册并在单页应用程序中添加了这些 redirectUri
- 本地主机:3001
- *.crm.dynamics.com/main.aspx //main.aspx 因为我之前提到过这个问题 #190。
所以当我在 localhost:3001 中打开我的应用程序时,它工作正常。它会弹出一个登录窗口,要求登录,并在关闭时给出一个访问令牌作为响应。但在第二种情况下,弹出窗口不会重定向回它的主页,而是在弹出窗口本身中打开。
我在 D365 现场服务中使用的 PCF 组件中使用了这个。
复制步骤
- 使用上述代码片段创建一个 PCF 组件。
- 在画布应用程序中添加此 PCF 组件。
- 在 D365 Field Service CRM 中嵌入新创建的画布应用程序。
- 当您在此 *.crm.dynamics.com/main.aspx 上运行的 D365 Field Service CRM 中打开 PCF 组件时,它将打开一个登录弹出窗口。我们必须从该弹出窗口登录。
- 此弹出窗口不会关闭,而是仅在弹出窗口内打开重定向 URL。 我已经像这样在 App 注册中添加了重定向 URI
我已经使用了每个变体,例如 *.crm.dynamics.com/main.aspx 和 *.crm.dynamics.com/ 和 *.crm.dynamics.com。
预期行为
弹出一个登录弹出窗口,在用户登录后弹出窗口自行关闭并且 loginPopup 承诺解决(或拒绝)。
实际行为
弹出一个登录弹出窗口,在用户登录后,弹出窗口重定向回我的站点。