嗯,你自己说了。您必须在设备上存储用户名和密码。这些凭证存储的安全性如何?设备上安装的流氓应用程序是否能够检索凭据?如果流氓应用程序在与有效应用程序相同的帐户下运行,它可能可以。即使您将这些凭据加密存储,您也必须将秘密存储在设备本身上。
此外,移动设备丢失/被盗的可能性要高得多,攻击者可以访问设备本身。
另一个原因是每次发送用户名和密码会增加攻击面。它将为攻击者提供更多具有常量数据的消息以尝试解密。
最后,验证密码,如果正确实施,应该相对较慢,使其不太适合API身份验证。
像OAuth 2.0这样的协议可以使用在有限时间内有效的访问令牌,并且您必须能够访问刷新令牌才能获得新的访问令牌。如果设备丢失或被盗,可以轻松撤销刷新令牌。