我正在使用 MVC 的 OAuth 2.0,可以在这里找到:
http://community.codesmithtools.com/CodeSmith_Community/b/tdupont/archive/2011/03/18/oauth-2-0-for-mvc-two-legged-implementation.aspx#comments(这是一些链接light 文档,其中包含项目下载的链接)。
我试图弄清楚流程是如何工作的。它似乎是这样的:
- 从 RequestToken 控制器方法中获取 RequestToken
- 然后控制器将请求令牌传递给 OAuthServiceBase.Instance.AccessToken。这最终会转到继承抽象 OAuthServiceBase 类的 DemoService 类。此方法使用 RequestToken 对用户名进行哈希处理,然后将其与密码(也已使用 RequestToken 进行哈希处理和加盐处理)进行比较。如果它们匹配,它会发出一个 AccessToken。这是示例逻辑 - 这里有一条说明,在真实的应用程序中,你应该去获取用户的凭据。
这让我对以下几点感到很困惑:
- 我无法理解 RequestToken 的用途。RequestToken 将在 5 分钟后过期 - 因此,即使示例逻辑使用它对用户名和密码散列进行加盐,我也看不到任何可能的方法可以用它加盐用户的散列密码。
- 尽管有上述规定,我在此应用程序中看不到任何用于加密密码哈希的机制。我错过了什么吗?我不想在客户端持久存储盐,所以我不必将未加密的密码存储在数据库中吗?如果我有一个持久盐,我可以将散列和加盐密码存储在数据库中,并将盐存储在客户端,然后将散列密码传递给身份验证。
正如您可能知道的那样,我通常是编写身份验证代码的新手。我知道我在这里遗漏了一些东西,我只是不知道它是什么:)