【问题标题】:Django authenticating android app userDjango 验证 android 应用程序用户
【发布时间】:2014-04-22 18:03:43
【问题描述】:

我打算做什么:

  • 在客户端(在手机上)使用 FB/Google 对用户进行身份验证
  • 将身份验证确认传递给服务器
  • 创建另一个令牌以用于未来与应用的通信

所以我会编写一个“登录”应用程序来创建这个令牌,就是这样。

我的问题:

既然所有数据都映射到了UserID,那么如何将token映射到用户ID呢?

  • 我是否编写一个 Django 中间件来进行这种转换?
  • 我是否将 current_token 存储在用户对象中
  • 我是否存储令牌映射 -> userId 并在生成模板将使用的数据时使用它?

我是否将 user_id 存储在本地并与令牌一起传递?

【问题讨论】:

    标签: android python django django-authentication


    【解决方案1】:

    我打算做什么:

    • 在客户端(在手机上)使用 FB/Google 对用户进行身份验证
    • 将身份验证确认传递给服务器
    • 创建另一个令牌以用于未来与应用的通信

    您永远不会,永远,在客户端进行用户验证。

    社交验证也通过服务器端使用 openID 提供者(在本例中为 Google/Facebook)的 API 进行。

    您要做的是使用此处找到的以下 4 个之一:

    https://hackerluddite.wordpress.com/2011/05/17/review-of-4-django-social-auth-apps/

    测试它们中的每一个,看看哪一个适合您的需求。

    您不会做的是构建自己的社交注册工具。

    最大的原因是它已经为您构建和测试,因此您无需重新发明轮子,除非您是为了学习而这样做。

    安全性也很重要,您可以认为自己的解决方案不如经过测试的版本安全。

    【讨论】:

    • 所以我将用户名和密码传递给服务器?
    • 在社交登录的情况下,你不会传递任何东西。社交登录应该将用户重定向到 facebook/google 登录,用户身份验证由他们的服务处理。让第三方网站处理用户名/密码存在安全风险。如果您尝试存储用户信息,则需要查阅他们各自的 API 以了解如何操作(尽管我希望其中 1 个身份验证工具允许您获取用户数据并将其放入您自己的数据库中)。
    • 感谢您的回复。但我完全理解这将如何在应用程序上运行。例如,应用程序中的“重定向”是什么意思?我要打开网页视图吗?即使在应用程序端登录,我也会使用 FB 和 google 提供的工具,而不是重写任何东西。
    • 我不确定你想说什么。你能再解释一下吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-14
    • 2017-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多