2011-03-10 74 views
3

PS:我理解OpenID身份验证和Oauth授权(我认为)的概念。而我使用Facebook作为Oauth授权的用户注册工作流程

它一直是网站给问你一个趋势的Oauth的例子为“注册”的,但在注册工作流程中(“用Facebook登录”从你的Facebook接收权限和成员信息后,帐户),他们仍然要求你选择一个用户名和密码。它创建一个本地用户,并将该用户“链接”到Facebook账户。

但现在我注意到在注册过程中像buzzfeed甚至stackoverflow的网站,他们似乎正在做Facebook的全面认证。您授予网站对您的Facebook帐户的权限,并且您现在已经登录(以某种Facebook用户身份登录)

更新(更正授权到认证): 这是否意味着Facebook连接现在执行“身份验证”?这是否意味着用户不再存储在本地?

回答

1

在stackoverflow的情况下,我认为他们在内部创建用户帐户,但他们代表用户创建用户名 - 如user1243534,如果用户没有指定他自己的用户名。此内部帐户用于存储用户的所有与计算器相关的信息,该信息不存在于Facebook(或其他提供者)中 - 声誉,问题,答案和所有内容。

如果你的情况,你的web应用程序不需要记录与用户相关的任何数据,除了会话中有一些会话临时变量(他用Facebook登录,他的Facebook名称等),那么你可以省略本地用户存储和账户。在这种情况下,当他的当前会话到期时,您的应用程序将丢失与该用户有关的任何数据。

但是,如果您想存储有关用户的任何数据,例如,他登录的次数,他喜欢的语言,持久性设置或任何未存储在提供程序中的内容,都应该创建本地用户帐户。

您的第一个问题:是的,如果没有提供其他身份验证过程,则每次用户想要登录时,facebook都会进行身份验证。

第二个问题:取决于您是否希望将用户数据存储的时间超过会话持续时间(未从提供程序获取的用户数据)。