![]() |
1
6
您是对的,访问令牌的验证方式与用户名和密码几乎相同。当访问令牌有效时,它与用户名和密码几乎相等。在某些情况下(取决于您的威胁模型),甚至可以在每个请求中发送用户名和密码,可能不是来自移动应用程序,但例如在服务器到服务器请求中,使用适当的控件。 但是,您不希望在来自移动应用程序的每个请求中发送密码,主要是因为这样您就必须存储密码。 密码(或用户)的问题在于它们被重用。密码是一个有价值的目标,因为同一密码可能会在多个服务上使用。因此,您可以将其交换为寿命较短的访问令牌,如果被盗,则会降低用户的风险。而且你不能轻易地撤销密码——强迫用户更改密码是一件麻烦事。撤销acces stoken很容易。
另一点是,有时(在OAuth流中),您的应用程序甚至不允许访问实际密码。当您的用户使用第三方身份提供商(如facebook)登录时,他们不希望您的应用程序收到他们的facebook密码。他们只是去facebook,用他们的凭证交换访问令牌,你只能看到令牌,如果你愿意,你可以通过facebook验证。但你从来没有真正获得用户的facebook密码。当然,这仅在身份提供者是第三方时有效。 |
![]() |
2
2
我认为答案是关于安全和保障。 始终建议使用访问令牌,而不是用户名&密码,因为:
|
![]() |
Jace Johnson · 我应该使用多个地图功能还是只使用一个 10 月前 |
![]() |
Mind full of blanks · 登录页面HTTP请求无限发送 11 月前 |
|
Pop Bob · Api返回UnsupportedMediaType 12 月前 |
![]() |
Mr FoX · 如何从mysqli输出json数组,而[重复] 12 月前 |