如何在允许单点登录的网站中维护用户状态

时间:2014-06-06 04:22:06

标签: database single-sign-on state

我正在制作一个允许用户注册和登录的网络应用程序。作为一项额外功能,我想添加允许用户通过单点登录使用Gmail登录的功能。 问题是如何维护通过Gmail登录的用户的状态?我也为它们创建数据库条目吗?架构怎么样?因为与通过常规流程注册的用户不同,这些用户不会提供他们的密码。

由于

1 个答案:

答案 0 :(得分:0)

取决于。

一种方法是使用社交登录作为简化注册过程的方法 - 通过将从Google返回的数据预先填入注册表单。在这种模式下,您始终还会生成常规的用户名/密码帐户。这使您可以例如添加功能,允许用户在注册后添加/更改社交登录。然后,架构将包含所有用户的常用用户数据+某些用户将包含具有其Google帐户ID的属性(如果您决定在将来添加更多ID,则包含其他ID)。

另一种方法是只允许一种类型的身份验证 - 内部用户名/密码或社交登录。您仍然可以保持上面的架构 - 每个用户一条记录,但此外,您还将包含一个区分内部/联盟用户的属性。然后,userID + type(internal / federated)的每个组合都应该是唯一的。此方法仍允许您的用户在应用程序中自定义其配置文件(例如,更改其名称,...),但他们将无法更新身份验证机制。对于联合用户,密码字段将为null。

如果您不需要填写有关使用社交登录进行身份验证的用户的任何数据(例如,他们只是访问一个简单的聊天界面而您只是想获取他们的名字,或者您没有&#39 ; t需要完整的配置文件,直到用户尝试执行某些操作 - 比如完成订单),您也可以完全跳过任何帐户创建并且忘记"用户一旦注销即可。