金牌译作 如何让你的网站也支持OpenID(一)

1815个读者 翻译: deng  01/18/2008 原文 引用 双语对照及眉批

这是一个非常详细的教程,它将指导那些已经拥有了用户的网站,如何来一步一步实现对OpenID的支持。它将解释如何让新用户使用OpenID的URL来注册帐号,并让原有用户轻松绑定他们的OpenID。这个教程看起来有些长,因为我的目的是希望你不用做任何思考,在看完文章的时候就可以轻松搞定这些事情。

概况

首先我假定你的网站已经具备了以下的条件:
1.一个用户信息数据库;
  • 每个用户有唯一的内部ID,用户通过他们的帐号(e-mail)和密码登陆。
2.完善的注册新用户和收集基本信息的流程;
3.有验证用户的登陆页面;
  • 通过用户的帐号(e-mail)和密码验证用户身份,并在网站其他地方依赖用户ID作为用户身份的象征。
4.有专门的页面用来管理账户信息。

如果你的网站不像以上所说的,你首先应该将它改造成这样,虽然某些细节可能有些出入。

下面是需要给你的网站增加的大体内容:
1.一个存储OpenID和用户的内部ID关系的数据表;
  • 它们之间是多对一的关系(每个用户可以绑定多个OpenID,但是一个OpenID只能属于一个用户)。
  • 这个表将用来通过OpenID查询所有的用户,因此必须是单独的一个数据表。
2.需要在注册界面上增加一些有关OpenID的内容;
  • 新用户将输入他们的OpenID,通过其对应的提供者来验证,并返回到你的注册页面,选择性提供他们想在你的网站上共享的资料。
3.对现有用户,也需要在登陆页面增加一点内容;
  • 已经绑定OpenID的用户可以直接输入OpenID,通过对应提供者验证用户身份,并返回到你的网站的验证页面,并通过OpenID和用户ID的对应关系找到对应的帐号,就像他们输入了帐号(e-mail)和密码一样。
4.一个OpenID的设置界面,需要提供对绑定到用户帐号的OpenID的浏览、添加、删除的功能。

下面是你将创建的简要内容:
1.一个OpenID数据表
  • 数据列:(openid_url,user_id)。openid_url是字符串,user_id是你当前用户标识身份的ID。
  • 把openid_url设为主键(唯一,用来通过OpenID查找用户)
  • 创建user_id的索引(用来对指定帐号列举其绑定的OpenID)
2.对用户输入的OpenID进行查询并重定向到OpenID提供者的动态页面
  • 检查用户输入的OpenID已经被站内用户绑定过了
  • 重定向到OpenID提供者(使用OpenID库),这样用户才能被授权(详情稍候讲解)
3.处理OpenID提供的应答的动态页面。
  • 需要核实应答(使用OpenID库)
  • 对于新用户,你需要按照注册流程先预先填充从OpenID提供者返回的注册信息,并且需要绕过注册流程,使他们不需要提供密码(因为他们以后将通过OpenID直接登陆)。
  • 对于已经注册的用户,你需要绑定已经被验证过的OpenID到他们的账户上(如果是他们是第一次使用它)。
4、用来管理用户绑定的OpenID的动态页面
  • 能获取和浏览所有绑定到当前登陆帐号的所有OpenID。
  • 能让用户绑定新的OpenID。
  • 能让用户删除已经绑定过的OpenID。
5.在删除用户的代码中增加删除该用户绑定过的OpenID的功能。

在正式开始之前你可能需要下面的资源:
1.选择一种程序语言的OpenID用户库,点击查看各种语言的用户库。
2.放置在你的网站界面的标准OpenID图形。比如小图标和logo(正常PDF)。
3.利用一些OpenID提供者来进行测试。比如MyOpenID.comLiveJournal、和ClaimID。另外,如果你有AOL/AIM的帐号,你可以用http://openid.aol.com/USERNAME作为一个OpenID(USERNAME代表你的帐号)。

实现OpenID用户支持能立刻享受以下这些好处:
1.1.2亿使用OpenID的用户将更容易、迅速地注册到你的网站,因为他们不再需要创建并记住心得帐号和密码。
2.当你开始收集你用户的OpenID时,你网站的用户将能更容易地享受到很多基于OpenID的服务。
3.通过支持这个举足轻重的在线身份的开放标准,你将证明你的想法和对会员的承诺。

另外,随着对OpenID支持的不断增多,你将可能享受到更多的好处:
1.自动链接到会员在别的网站的帐号,从而共享信息给Mashup,避免用户在不同的地方多次输入重复的信息。
2.当会员在别的网站更改信息时,你能更轻松地获取到他们的最新动态。
3.接受别的网站或服务提供的可信服务,比如年龄确认,e-mail认证,群组会员资格验证等等。

(待续,后文将讲述具体的实现,敬请关注)

内容有问题?请与我们联络。

译作评分

  • Currently 0.00/5
  • 1
  • 2
  • 3
  • 4
  • 5
 0.0  |  0 个评分

4条评论    0眉批

  • 1.

    cccccc 状元 | Blog

    注册过openid.cn但是不知道如何使用...
    yopoo上从来没成功过...

    01/18/2008

  • 2.

    deng 进士

    呵呵,我注册了myopenid.com,在yupoo上也没有成功过。

    01/18/2008

  • 3.

    yudaoni 童生

    openid使用时很简单,比如日作论坛(http://bbs.rizuo.com):
    页面右上角-登录-输入你的openid帐号(url)-提交后会跳到openid服务器验证(一般输入密码即可)-登录成功后跳回到日作论坛。
    myopenid无法这样跳到openid服务器登录,必须先登录openid服务器后再验证。

    01/21/2008

  • 4.

    deng 进士

    to  yudaoni:
    了解你的意思,和本文并无冲突。
    这篇文章的内容是讲要让自己的网站支持OpenID登陆而需要做的一些工作,这些工作都是需要对现有会员系统所做的更改,在本地只是存储现有用户名和OpenID的映射关系,并不会存储与OpenID验证有关的任何内容,所有的资格验证都是在OpenID提供网站完成的。

    01/21/2008

添加评论

欢迎访问译言网。在这里,您可以。。。

阅读
发现
翻译