启用Azure移动服务身份验证会导致POST请求中的“资源不支持GET”

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了启用Azure移动服务身份验证会导致POST请求中的“资源不支持GET”相关的知识,希望对你有一定的参考价值。

我尝试通过azure移动应用程序中的身份验证端点实现自定义身份验证。我创建了一个Api Controller,它使用Azures AppServiceLoginHandler.CreateToken方法创建Jwt。当我通过关闭Azure App Service身份验证发布到此控制器时,我得到一个令牌,但是当我想稍后使用它时,我总是收到“401 Unauthorized”。

但是,当我打开Azure门户中的设置,并发送相同的请求时,我得到:

The requested resource does not support http method 'GET'.

我没有更改任何代码,我当然正在使用POST请求 - 完全相同的请求,与关闭App Service身份验证一起使用。

我的代码与此处基本相同:https://www.newventuresoftware.com/blog/custom-authentication-with-azure-mobile-apps

有人可以在这里启发我吗?我需要在某处进行其他配置吗?

答案

正如adrian hall关于Custom Authentication的书所述:

您必须在App Service中启用身份验证/授权。将请求未经过身份验证时要执行的操作设置为“允许请求”(无操作),并且不配置任何支持的身份验证提供程序。

对于自定义身份验证,您需要在应用服务中启用身份验证/授权以验证令牌。此外,我建议您利用fiddler捕获网络跟踪以缩小此问题。此外,您需要确保使用HTTPS发送自定义登录请求。细节,你可以按照这个类似的issue

以上是关于启用Azure移动服务身份验证会导致POST请求中的“资源不支持GET”的主要内容,如果未能解决你的问题,请参考以下文章

移动设备上的 Azure App Service 身份验证问题

请求 Azure 应用服务身份验证刷新令牌

Azure 移动应用服务安全

如果启用了身份验证,Azure 上的查询/标头太大

使用 Cordova 的 Azure 移动应用自定义身份验证

Api 的自定义身份验证 Azure 移动服务