(Monaca、Cordova)带有表单身份验证 (Cookie) 的 Web API 请求不起作用

赤峰浩一

我有一个关于我的应用程序和 Web API 发布的问题。问题还没有解决,所以我需要你的帮助!

眼镜

该应用程序

  • 该应用程序使用 Monaca ( https://monaca.io/,基于 Cordova、HTML/JavaScript/CSS)构建
  • 使用 jQuery(3.4.1 版)ajax 方法调用 Web API。
  • 该应用程序首先需要登录 API,使用 cookie 获取凭据,然后使用凭据调用其他 Web API 的其他请求。

网络 API

  • 由 ASP.NET MVC (C#) 构建,并在 Microsoft Azure(应用服务)上托管。
  • 如果请求中的 ID 和密码正确,登录端点将返回凭据。
  • 其他 API 端点需要使用代码“[Authorize]”进行授权。

问题详情

即使登录请求成功,下一个 API 调用也会返回错误 (401 Unauthorized)。此问题已于 2020 年 1 月 24 日甚至现在报告。

跟踪数据(使用 Charles Proxy),我发现以下内容:

  • 登录 endpint 返回凭据(Set-Cookie:xxxx)。
  • 在应用程序上,登录后的 API 调用不会发送“Cookie”凭据。

并非所有支持的设备都出现此问题(iOS 和 Android 具有最新版本的 webview)

  • Google Pixel 3a (Android 10):呼叫失败
  • 摩托罗拉 Moto X4 (Android 9):失败
  • 华为(Android 6):失败
  • iPhone SE (iOS 12.4):失败
  • iPhone 6 Plus (iOS 10.2.1):呼叫成功

应用程序和 Web API 至少在过去 3 个月内都没有更新。

赤峰浩一

我解决了这个问题。问题出在服务器端(Azure 上的 Web API)。

公告:SameSite Cookie 处理和 Azure 应用服务上的 .NET Framework 4.7.2 补丁可用性 - Microsoft 问答(预览)
https://docs.microsoft.com/answers/questions/6842/announcement-samesite-cookie-handling-and-网络框架.html

Web API 是在 Azure 应用服务上使用 ASP.NET MVC 4.5 构建的。2020 年 1 月,Azure 上安装了一个新服务,然后 Web API 出现错误。

根据上面页面的指导,问题已经解决。

(我找不到为什么 API 在测试机 iPhone 6 Plus、iOS 10.2.1 上运行良好。)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

OWIN和带有SPA的WEB API 2的表单身份验证

共享表单身份验证Cookie在子域上不起作用

Web API 核心 JWT 身份验证不起作用

Asp.Net Core:在 Web Farm 中共享身份验证 cookie 不起作用

AngularJS和Web API表单身份验证

具有表单身份验证和角色的Web API

自定义授权属性角色不起作用 web api 身份验证

将客户端应用程序迁移到 azure 身份验证后,api 中的表单身份验证不起作用

编辑Cookie选项后身份验证不起作用

模型验证.Net Core 2.0 Web Api不起作用

发送带有明确的samesite = none的表单身份验证Cookie

带有表单身份验证的ASP .NET Web表单的MFA提供程序

ASP.NET Core 3 Web Api发布请求不起作用

Web API 2 RoutePrefix不起作用

HttpDelete在Web Api中不起作用

Web API模型绑定不起作用

Web api 启用 CORS 不起作用

Web Api 属性路由不起作用

Web API发布方法不起作用

从MVC控制器调用Web API(cookie身份验证)

通过Web API身份验证将Bearer令牌添加到Cookie

如何使用Postman使用Cookie身份验证测试ASP.NET Core Web API?

Laravel API TOKEN身份验证不起作用

带有 Web API 路由的 .NET Core 3.1 MVC 不起作用

在令牌过期的情况下,表单身份验证和OAuth for Web API项目的混合不会返回401

Android LoginActivity,带有图谱API请求的Facebook CallbackManager:executeAndWait()方法不起作用

使用请求不起作用的python web抓取表单数据

为什么我的Cookie身份验证在ASP .NET Core中不起作用?

Cookie持久性在OWIN身份验证中不起作用