gpt4 book ai didi

user-interface - 将网站用户帐户与 Facebook 帐户绑定(bind)的最佳工作流程

转载 作者:行者123 更新时间:2023-11-30 05:27:08 25 4
gpt4 key购买 nike

我需要实现 facebook-connect 到用户可能已经拥有其内部帐户的网站。如果内部帐户不存在,则应从 facebook 凭据创建。也应该可以将现有帐户链接到 facebook 帐户。技术实现对我来说很清楚,但我更感兴趣的是实用、最佳且易于理解的用户事件工作流。

1) 我最初的想法是有一个带有用户和密码字段以及两个按钮的登录表单:“与 facebook 联系”和“登录”。如果按下“登录”,则内部帐户正常登录。如果按下“与facebook连接”,则用户连接到facebook,然后根据用户和密码的状态,我可以检索内部用户并绑定(bind)它与 facebook 用户,或创建一个新的内部用户并将其绑定(bind)到 facebook 用户,或检索绑定(bind)到 facebook 用户的内部用户。但是,我在工作流程中看到了一些陷阱。如果输入的用户名和密码与绑定(bind)到 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 将获得或创建一个内部帐户;然后是一个单独的可选表单,供登录用户绑定(bind)他们的 Facebook 帐户。但话又说回来,仍然有可能创建一个重复的内部帐户。

处理该问题的最佳做法是什么?其他网站主要使用什么?

最佳答案

登录表单:

[username]   |
[password] | or [fbconnect button] with facebook
[ok] |

(两个相互排斥的部分“要么,如果你使用facebook,你不需要填写登录表单)

一旦用户连接到 FB,而您没有与该 uid 关联的用户帐户,您就会弹出另一个表单:

Welcome, 
Please choose username for this site:
[username] [ok]
(you can prompt to select a password as well if you want)
----------------------------------------------------
If you already have an account on our site please enter your credentials:
[username]
[password]
[ok]

在这一步之后你应该被覆盖 - 无论他们选择哪种方式结果应该是相同的。

通常您在登录时不会提示 facebook 连接用户输入密码,他们只是使用 facebook 连接按钮,因此随机生成的密码就可以了。如果您想创建可以在没有 facebook 的情况下使用的完整帐户,那么您会提示输入密码(但仍然不要将其用于 facebook 登录)。

关于user-interface - 将网站用户帐户与 Facebook 帐户绑定(bind)的最佳工作流程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3780093/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com