atc*_*way 4 javascript authentication azure azure-mobile-services asp.net-core
我正在为客户端使用当前的Azure Mobile Apps SDKJavaScript
并使用以下教程.我已经注册了所有主要提供商Azure
,他们都包含他们的应用程序ID和秘密正确配置.我正在使用SDK中的样板代码来调用Azure Mobile Apps
,并且提供程序登录(Twitter,Google,MSFT,FB)将在我的Web应用程序中弹出一个窗口并允许登录进行身份验证.身份验证有效.
问题是回调过程回到我的原始网络应用程序.我收到403 (Forbidden)
错误,浏览器窗口中显示以下内容:
您无权查看此目录或页面.
以下是一些示例回调网址(为简洁起见,模糊处理的值)
自由软件
网址:htt
https://myservice.azurewebsites.net/.auth/login/google/callback?state=nonce%3Dc&authuser=0&session_state=4cf501&prompt=none#
问题是,如果我使用上面的任何完整URL并粘贴到新的浏览器窗口并进行调用,我会在浏览器中收到以下Azure消息:
您已成功登录
确定登录和身份验证有效,但看起来应用程序的回调失败了403 forbidden
.以下是我尝试过的事情:
CORS
在我的Azure Mobile Apps
实例的服务器上的Azure配置中使用"*"来源CORS
在我的ASP.NET Core
Web应用程序中允许"*"来源Content-Security-Policy
的index.html
<meta http-equiv ="Content-Security-Policy" content="default-src * 'unsafe-inline'; script-src * 'unsafe-inline'; connect-src *; img-src *; style-src * 'unsafe-inline'">
这个过程和代码对我来说并不陌生.这一切都曾经在Azure Mobile Services
现在已经退休的旧实例中工作Azure Mobile Apps
(没有content-security-policy
上述内容;我之前从未需要过).我认为这不是JavaScript
代码问题,因为在WindowsAzure.MobileServiceClient
调用时甚至不会从此进程返回promise .
有没有人知道什么阻止这个完整的过程完成并403 forbidden
在成功进行身份验证后从提供程序登录窗口导致此过程?
更新:我在此创建了一篇博客文章,以帮助其他人并提供详尽的解释:配置Azure移动应用程序身份验证服务器端以与JavaScript客户端一起使用
小智 5
看起来这可能与您可以在门户中配置的重定向URL相关.看一下这个文档.在本地运行可能会导致问题,因为默认情况下,App Service身份验证仅配置为允许从Mobile App后端进行访问.使用以下步骤更改App Service设置以在本地运行服务器时启用身份验证:
"allowedExternalRedirectUrls": [ "http://localhost:3000","https://localhost:3000"],
将数组中的URL替换为服务的URL,在本示例中为本地服务的http:// localhost:3000.您还可以使用http:// localhost:4400,具体取决于您的应用的配置方式.
您还需要将相同的环回URL添加到CORS白名单设置:
后端更新后,您将能够在应用中使用新的环回URL.
归档时间: |
|
查看次数: |
278 次 |
最近记录: |