【发布时间】:2011-12-28 12:40:16
【问题描述】:
我需要实现 facebook-connect 到用户可能已经拥有内部帐户的网站。如果内部帐户不存在,则应从 facebook 凭据创建。此外,应该可以将现有帐户链接到 facebook 帐户。技术实现对我来说很清楚,但我更感兴趣的是实用、优化且易于理解的用户活动工作流程。
1) 我最初的想法是创建一个登录表单,其中包含用户和密码字段以及两个按钮:“与 facebook 连接”和“登录”。如果按“登录”,则内部帐户正常登录。如果按“与facebook连接”,则用户已连接到facebook,然后根据用户和密码的状态,我可以检索内部用户并绑定它使用 facebook 用户,或者创建一个新的内部用户并将其绑定到 facebook 用户,或者检索绑定到 facebook 用户的内部用户。但是,我在工作流程中看到了一些问题。如果输入的用户和密码与绑定到 facebook 帐户的内部用户不同,该怎么办?
我将尝试用伪代码说明问题:
if "login" is pressed:
internal_user = authenticate(username, password)
if "connect to facebook" is pressed:
facebook_user = get_facebook_user()
if username and password are filled in:
internal_user = authenticate(username, password)
if facebook_user has no internal_user:
facebook_user.bind_internal_user(internal_user)
else:
# conflict! what to do with it?
# facebook_user.get_internal_user() != internal_user
else:
if facebook_user has internal_user:
internal_user = facebook_user.get_internal_user()
else:
internal_user = facebook_user.create_internal_user()
internal_user.login()
另外,用户可能会在问自己是否需要输入 facebook 用户名和密码或网站的用户名和密码时感到困惑。
2) 另一种选择可能是将 登录表单、连接到 facebook 和 注册表 作为三个不同的选项,其中连接到 facebook 将获得或创建一个内部帐户;然后是一个单独的可选表单,供登录用户绑定他们的 Facebook 帐户。但话又说回来,还有可能创建一个重复的内部帐户。
解决这个问题的最佳做法是什么?其他网站主要使用什么?
【问题讨论】:
标签: user-interface facebook usability