C# 使用oAuth2验证WPF和PHP之间的请求?

C# 使用oAuth2验证WPF和PHP之间的请求?,c#,php,wpf,authentication,request,C#,Php,Wpf,Authentication,Request,我已经搜索了一段时间,但找不到任何与我的想法有关的东西。我想用WPF构建一个应用程序,它将所有与用户相关的信息发送到PHP脚本。对于每个请求,我都使用SSL 当用户注册时,他只提交用户名、密码和电子邮件地址。密码始终使用sha256存储为应用程序中的散列,而此散列使用PHP中的password_散列存储为另一个散列 登录后,应用程序将根据用户操作发送请求。为了验证每个请求,我遇到了oAuth2。oAuth2是验证请求的“最佳实践”还是有其他方法?必须在登录后验证每个请求。OAuth可能是您的最佳

我已经搜索了一段时间,但找不到任何与我的想法有关的东西。我想用WPF构建一个应用程序,它将所有与用户相关的信息发送到PHP脚本。对于每个请求,我都使用SSL

当用户注册时,他只提交用户名、密码和电子邮件地址。密码始终使用sha256存储为应用程序中的散列,而此散列使用PHP中的password_散列存储为另一个散列


登录后,应用程序将根据用户操作发送请求。为了验证每个请求,我遇到了oAuth2。oAuth2是验证请求的“最佳实践”还是有其他方法?必须在登录后验证每个请求。

OAuth可能是您的最佳选择。现在,在应用程序中工作时,能够验证请求和撤销令牌是关键。许多顶级网站,Facebook、Twitter、Instagram等,都使用OAuth,因为它具有强大的身份验证和灵活性

对于我的公司,我们有定制的API,并为所有API使用OAuth。尽管它们是私有API,但OAuth使我们能够在以后很高兴的时候推动公共使用


我不确定你的项目是什么或者它是如何运作的,坦白说,我不需要。在我看来,使用OAuth不会出错。

保护API请求的常用方法有两种:

  • 基本身份验证。表格的标题

    Authorization: Basic base64(username:password)
    
    随每个请求一起发送。这很容易实现,但也很容易攻击;您绝对必须通过HTTPS发送请求(因为没有使用加密)

  • OAuth的某种形式。您可以在类似您的场景中使用密码授予类型:将用户名和密码发送到OAuth服务器,并请求一个可用于每个请求的访问令牌。这更安全,也更复杂,因为您必须实现令牌服务器

您选择什么取决于很多因素,比如您的服务是内部的还是外部的,您希望在项目中构建多少复杂性,以及目标用户是谁

进一步阅读:

  • (与WPF无关,但视频质量良好)

全面披露:我在一家专门为此构建API的公司工作。

这是一个学习过程,我想在这个过程中学习最佳实践。因为基本身份验证太简单,而且不太安全,所以我将尝试OAuth。现在我将做大量的研究,看看我是否能进入这一领域。如果您以前从未做过任何身份验证层的工作,那么在两侧实现Basic将是一个很好的练习。然后你可以继续学习更高级的东西。谢谢你的建议。我将首先实现Basic,看看它是如何工作的。