我的网站有一个Restful API,需要进行身份验证.当用户登录网站时,它会执行HTTP基本身份验证(用户名和密码),并返回在API中生成的访问令牌.
但最近我实施了蒸汽登录(是的,蒸汽可以充当OpenID提供商).一切都还可以,但如果没有密码发送,我如何在API上授权用户.
您不需要用户名和/或密码来验证使用 OpenId 提供商(在您的情况下为 Steam)登录您网站的用户。您需要的是信任这个 OpenId Provider。
这是约翰·克里斯托弗·琼斯 (John Christopher Jones) 在博客文章中关于 OpenId 的一个非常好的定义:
OpenID是一种身份验证策略,未经身份验证的用户访问您的网站,然后通过登录 Google、Twitter、Facebook、Steam 或其他一些OpenID 提供商来验证自己的身份。您的服务器(OpenID 依赖方)与OpenID 提供商(Google 等)交换密钥,然后将用户发送到OpenID 提供商进行登录。
用户使用OpenID 提供商登录后,系统会向您发送用户的 一些信息,以识别他们的身份,并使用您与OpenID 提供商交换的密钥进行签名。此时您可以信任他们的身份,并 根据他们的身份开始将他们“登录”到您自己的系统。
下图显示了 OpenId 流程:
如您所见,验证凭据后,OpenId 提供商 (Steam) 会将用户发送回您的网站,包括 URL 中的凭据。有了这些凭证,您需要做的是:
有了这个 API 令牌,您的客户端应用程序就可以将这些令牌添加到 RESTful API 的每个请求中,就像使用用户名和密码进行身份验证的用户所做的那样。请注意,您的令牌生成策略不能依赖于用户名和密码。
| 归档时间: |
|
| 查看次数: |
897 次 |
| 最近记录: |