- 实现attach方法(帮助已经注册的用户绑定新的OpenID到账户上)
这个方法可以看作是complete方法的一部分,因为它发生在用户已经登陆而且已经验证过了一个新的OpenID,所以在调用此方法时需要确保这个用户已经登陆了。
- 用AttachOpenID函数绑定已经验证过的OpenID到登陆的用户账户。
- 提示用户这个OpenID已经版定成功,今后可以它直接登陆。接下来可以考虑调用list方法,这样用户就能从列表中看到这个OpenID了。
- 实现list方法(用来展示用户账户上绑定的所有OpenID)
- 需要用户登陆。
- 用GetOpenIDsByUser函数获取绑定的OpenID列表。
- 对应每个绑定的OpenID提供链接用来解除绑定,用户点击后将传入openid_url参数执行delete的动作。
- 提供增加OpenID的输入框或链接。这将把用户带入到登陆和绑定流程,最后将返回这个列表页面。
- 如果你的网站已经有一般设置页面,你应该提供类似“管理你的OpenID”的链接到列表页面。
实现delete方法(用来从用户账户中解除一个OpenID)
- 需要用户已经登陆。
- 可选:检查这个OpenID是不是用户最后一个在你的网站的身份凭证。如果用户没有设置你网站的密码而且这是他唯一绑定到他账户的OpenID,删除这个OpenID将会使用户完全脱离这个账户。如果没有好的办法是用户能恢复他的帐号,而且用户试图删除这个最后的身份凭证,那么就显示一条错误信息吧——“你不能删除你帐号上的最后一个OpenID,这样你将没办法再登陆本站。你可以先绑定另一个OpenID或者创建在本站的密码”。
- 传递openid_url参数给DetachOpenID函数,正常的话,就可以解除对它的绑定了。如果提供的OpenID并未绑定到用户的账户,你可以提示错误或者无视它即可。
- 显示确认信息,表明这个OpenID已经被解除绑定,不能在你的网站继续使用。告诉用户如果他想再次绑定这个OpenID,则需要通过正常的验证过程重新绑定。然后可以考虑重新定向到OpenID列表页面,用户就能看到列表的更新情况。
如果要删除一个用户帐号,就需要删除这个帐号绑定的所有OpenID。
- 如果你的网站支持用户删除账户,删除该账户绑定的任何OpenID也相当重要,因为这样,这些OpenID才有机会绑定到其他账户上。你可以在删除用户账户的时候调用DetachOpenIDsByUser函数来实现这个操作。
呵呵,你终于做完了!
如果你现在做完这些了,那么恭喜你了,你现在已经拥有让你的网站实现对OpenID支持的十八般武艺。上面的步骤已经非常彻底和完善,但是如果在实现的时候遵循下面的规则,将对你更加有帮助:
- 无论何时将OpenID显示在页面上,把OpenID的小图标显示在前面,使其意义非常明显。
- 一般来说,在你将OpenID公之于众的时候,需要征求用户的同意。也许有得用户愿意把它作为一个公用的身份,但你最后还是假定他们只是愿意作为一个私有的象征。
(全文完)











如何让你的网站也支持OpenID(三)
翻译: 