我正在尝试使用 OpenID 来允许我通过 Google 登录我的网站。最终它会被访问者使用,但现在它只是硬编码为谷歌来验证我自己的登录。
我的代码如下所示:
var openId = new OpenIdRelyingParty();
// If we have no response, start
if (openId.Response == null)
{
// Create a request and send the user off
openId.CreateRequest("https://www.google.com/accounts/o8/id").RedirectToProvider();
}
else
{
// We got a response - check it's valid
if (openId.Response.Status == AuthenticationStatus.Authenticated
&& openId.Response.ClaimedIdentifier == "blah_blah")
{
}
}
现在,我有几个问题:
运行一次是否安全,捕获 ClaimedIdentifier 并将其放入其中。会永远一样吗?
在那里对其进行硬编码是否安全(它是秘密的吗?如果用户确实看到了它,那会损害任何东西吗?用户可以伪造吗?只能 Google 导致以他们的 url 开头的 ClaimedIdentifiers 吗?)
我已经尝试过这些文档,但它们有点稀疏,我无法找到这些问题的答案。
**编辑:**我可能已经回答了我自己的问题。我在我的网站 (openid.delegate) 上使用了元标记,这样我就可以使用我的博客网址而不是讨厌的 Google 网址登录。当我通过 Google 登录时,它返回 ClaimedIdentifier 作为我的博客网址。这让我觉得任何人都可以访问我的登录页面,以他们自己的 Google 帐户登录,然后使用我自己的 ClaimedIdentifier 将他们返回到我的博客。
- 当 ClaimedIdentifier 看起来很容易伪造时,我应该如何验证用户?