【问题标题】:Facebook authentication: server-side versus client-side. Python/DjangoFacebook 身份验证:服务器端与客户端。蟒蛇/Django
【发布时间】:2013-10-13 11:41:15
【问题描述】:

我有一个网站,基本上要求用户登录才能查看任何内容。如果他们没有登录,那么他们将被重定向到首页和登录表单。

我目前使用 Django 的标准身份验证,并在返回页面之前测试服务器端的身份验证。

我现在想添加 Facebook 登录和身份验证。这是否意味着每次用户导航到任何页面时,我都需要对 Facebook 进行服务器端调用并验证身份验证?这似乎会增加相当多的调用和潜在的页面延迟。

或者,这真的不是一个问题(Facebook 呼叫速度很快)还是我缺少其他一些聪明的方法?以某种方式将呼叫客户端移动到我认为 Facebook 使用缓存的地方?

我查看了一些 Django/Facebook 软件包,但似乎没有一个可以解释总体策略,这正是我希望了解的。我看过的教程描述了如何登录,但不用担心用户退出 Facebook 后会发生什么。

【问题讨论】:

    标签: python django facebook-login django-authentication facebook-authentication


    【解决方案1】:

    基本上,用户使用 facebook 登录一次(这将向 facebook 发出请求)。

    一旦登录,它将像普通的 django 用户一样行事(大多数应用程序为每个 facebook 用户创建一个 Django 用户)

    只有当访问令牌(使用 facebook 数据的“密码”)过期时,您才需要再次连接到 facebook。

    我建议您使用Python Social Auth,它基本上可以为您完成所有工作。

    【讨论】:

    • 那么如果用户退出 Facebook 会发生什么 - 他们仍然希望登录到我的网络应用程序吗?或者他们会期望退出 Facebook 会退出使用 Facebook 登录的每个应用程序,在这种情况下,我需要继续检查他们是否仍然登录到 Facebook?
    • 这是个好问题。这完全取决于您:您是否可以选择使用 facebook 注册到您的网站?或者您网站中的用户是 facebook 用户?更常见的是第一个选项,因此即使用户没有登录到 facebook,也并不意味着他不能登录到您的站点。但每当他需要再次登录您的网站时,他将需要使用他的 facebook 帐户,因为 facebook 用户在您的网站中没有密码。这是关于它的主要问题:身份验证部分。
    • 啊,我明白了。如果 Facebook 和我的应用程序不必如此连接,那肯定会更容易。您是否碰巧知道他们是否需要登录 facebook 才能让我访问他们的 facebook 信息 - 例如他们的电子邮件或其他任何他们可能已允许我访问的内容?
    • 不,他们不需要。身份验证过程完成后,您会在 Facebook 的回复中获得一些基本详细信息,例如电子邮件、兴趣列表、点赞……。最重要的是,他们为您提供“访问令牌”:它使您可以随时访问用户信息(但仅限于用户当然同意提供的内容)。我认为此访问令牌将在 60 天后过期,而您需要再次获得另一个访问令牌的权限。
    • 谢谢,帮了大忙。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-28
    • 2011-11-04
    • 2014-01-04
    • 1970-01-01
    • 2012-04-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多