我为我的最新项目编写了一个 API。它完全用 PHP 编写,目前支持 Web 和移动应用程序。我们也想将其扩展到桌面应用程序,但我不确定如何让用户通过桌面应用程序登录,同时仍然保护用户名和密码免受所述应用程序的影响。
Stackoverflow 上有很多出色的开发人员,所以请给我一些出色的答案!
该应用程序将由第 3 方开发,因此我想确保他们无法存储用户名和密码
如果应用程序必须发送用户名和密码,那么它必须能够访问它们,所以根本不要在应用程序内部使用它们。
使用OAuth。这是包括 Twitter 在内的许多大型组织使用的解决方案。
它是一个桌面应用程序,它可以完全访问用户的键盘和内存。如果应用程序应该有一个登录表单,最终用户可以在其中输入他们的用户名和密码,则应用程序根据定义具有此数据。
唯一的解决方案是自己分发登录应用程序,它会执行某种基于令牌的身份验证,并通过您的 api 为第 3 方应用程序提供登录令牌。
oauth 和网络上的其他单点登录系统通常使用来自系统登录自身的 iframe 或弹出窗口。不应允许任何第三方网站或应用程序提供此输入字段。