
安全
|
205
略,因此为了避免冲突,这个
ID
属性将是认证策略类型和第三方
ID
的组合。例如,一个
Facebook
用户的
authId
可能为
facebook:525764102
,而一个
Twitter
用户的
authId
可能为
twitter:376841763
。
在示例中,我们将使用两个角色:“客户”和“雇员”。
18.3.5
认证与注册及用户体验
认证指的是核对用户的
ID
,要么是使用某个受信任的第三方来核对,要么是通过提供给用
户的身份凭证(比如用户名和密码)来核对。而注册指的是用户在网站上获得一个账号的
过程(从我们的视角来看,如果数据库里创建了一条用户记录,那么注册就完成了)。
当用户第一次加入你的网站时,应该让他们明白自己正在注册。如果我们在使用一个第三
方认证系统,当用户成功地通过认证之后,就可以给他们完成注册,而无须让他们知道。
不过,这通常不是一个好做法。如果用户是在注册,就应该让他们知道(不管他们是否是
通过第三方来认证的)。如果以后用户想注销账号,也应该提供一个明确的机制。
在用户体验上需要考虑的一种情形是“第三方混淆”。如果用户在一月份使用
Facebook
注
册了你的服务,然后在七月份又来了,这时屏幕上显示着各种登录方式可供选择,包括
Facebook
、
T
witter
、谷歌或
LinkedIn
,用户可能会忘记当初是用哪个账号注册的,这很正
常。这是第三方认证带来的一个隐患,对此你所能做的很有限。因此让用户提供电子邮件
地址又有了一个合适的理由:如果用户留了电子邮件地址,你就可以给用户一个选择