验证 OpenId 提供商是否有效

Verify if OpenId provider is valid

我正在尝试让用户通过 OpenId 使用他们的 Steam 帐户登录。我可以向 Steam OpenId 发出请求并登录该用户。

我担心的是,我目前没有任何方法可以确认 OpenId 提供程序是否确实有效。如果我无法验证提供商,黑客可能会成功响应我的网站以登录。我认为可能有一种方法可以确认提供商的 url,但我不知道该怎么做这个。

那么我如何确定提供商是 Steam 而不是某些第 3 方?

(我正在使用 passport-openid 库)

您从他们在 OpenID URL 登录表单中提供给您的页面中提取用户的 OpenID 提供商。这是您唯一可以了解用户希望使用哪个 OpenID 提供商的地方。

除非 URL 是一个 HTTPS,否则您不能确定没有中间人攻击为您的应用程序提供不同的 OpenID 提供商。