我已经搜索了一段时间,但找不到与我的想法有关的任何内容。我想用WPF构建一个应用程序,它将所有用户相关的信息发送到PHP脚本。对于我使用SSL的每个请求。
当用户注册时,他只提交用户名,密码和电子邮件地址。密码始终使用sha256存储为应用程序中的哈希值,并且此哈希值在PHP中使用password_hash存储为另一个哈希值。
登录后,应用程序将根据用户操作发送请求。为了验证每个请求,我遇到了oAuth2。 oAuth2是验证请求的“最佳实践”还是有另一种方法可以做到这一点?登录后有必要对每个请求进行验证。
答案 0 :(得分:1)
OAuth 可能是您最好的选择。能够验证请求和撤销令牌是现在在应用程序中工作一天的关键。许多顶级网站,Facebook,Twitter,Instagram等都使用OAuth,因为它具有强大的身份验证和灵活性。
对于我的公司,我们有自定义的API,并为所有这些API使用OAuth。即使它们是私有API,OAuth也能让我们在以后如果我们感到高兴的话推动公众使用。
确切地知道您的项目是什么或它的功能如何,坦率地说,我并不需要。在我看来,使用OAuth不会出错。
答案 1 :(得分:1)
保护API请求的方法有两种:
基本身份验证。表格的标题
Authorization: Basic base64(username:password)
与每个请求一起发送。这很容易实现,但也很容易攻击;你绝对必须通过HTTPS发送请求(因为没有使用加密)。
某种形式的 OAuth 。您可以将密码授予类型用于与您类似的方案:您将用户名和密码发送到OAuth服务器,并请求可在每个请求上使用的访问令牌。这更安全,更复杂,因为您必须实现令牌服务器。
您选择的内容取决于很多因素,例如您的服务是内部服务还是外部服务,您希望在项目中构建多少复杂程度,以及目标用户是谁。
进一步阅读:
完全披露:我在company工作,为此构建API。