使用OpenID来证明Stackoverflow成员资格

时间:2009-05-19 19:56:00

标签: php facebook openid stackexchange-api

这是交易:
- Flair几乎要求Facebook应用程序
- 我正在努力学习Facebook平台

因此,我写了一个小巧的Facebook应用程序,将你的Flair嵌入你个人资料一侧的方框中。 If you're interested and on Facebook;请注意,这是一项非常重要的工作,容易发生变化并且有很多粗糙的边缘。

但是,我没有一个优雅的方式来说这个极简的应用程序“这是我的Stackoverflow配置文件”。我目前的解决方案最佳展示this image。坦率地说,这是愚蠢的;并且没有什么能阻止冒充。

没有使用OpenID的经验,我想知道是否有某种方式(以及这种方式的一些例子)让用户向第三方提供他们的Stackoverflow标识?

<小时/> 行为改变为Noldorin的回答所建议的行为 要求更好的方法来执行此操作declined on UserVoice

2 个答案:

答案 0 :(得分:10)

无法从OpenID获取StackOverflow ID,并且可以做相反的操作,但不必要的复杂(与您建议的方法相比)。在我看来,复制和粘贴用户ID /配置文件URL并不是非常不方便。

但是,我可以为假冒问题提出某种解决方案。这可能看起来像一个有点愚蠢的方法,但这是我能想到的最简单的方法,以确保只有用户自己可以显示徽章。我再次认为这不太方便。 (鉴于电子邮件不公开,不可能使用更传统的电子邮件确认方法。)

  1. 让您的Facebook应用生成随机(字母数字?)代码。 A8IO45QW6T形式的内容应该这样做。
  2. 将此代码保存在Facebook应用的服务器端一小段时间(例如,5分钟)。
  3. 通过将给定代码添加到最后一行,然后返回Facebook并确认,指示用户编辑他们的关于我信息。对指定用户的配置文件页面的HTML进行简单检查将验证所有权。然后,用户可以从关于我文本中删除验证码。
  4. 顺便说一句,创建这个Facebook应用程序的好主意。我可以尝试一下!

答案 1 :(得分:2)

允许即时验证的另一个解决方案是对电子邮件地址进行散列并检查它是否与用户的Gravatar匹配。当然,并非每个用户都提供了电子邮件地址,但您始终可以先执行此检查,如果失败,您可以回到“关于我”部分编辑(或者只是要求用户拥有电子邮件地址)。这个想法不是我的,所以我会让null explain

  

你还有源可用吗?因为我已经找到了一个解决方案来防止其他用户弄乱您的结果。您只需要哈希查看器使用的电子邮件地址,并检查页面上的重力图像链接outlined on the gravatar site。如果用户id和图像哈希匹配,则将更改记录到数据库,否则......只显示结果。我可以做出改变,但消息来源似乎丢失了...... :(