【问题标题】:How can I set up token-based authentication for web services using Python?如何使用 Python 为 Web 服务设置基于令牌的身份验证?
【发布时间】:2011-03-31 19:36:54
【问题描述】:

我对 Web 身份验证、Python 和 Django 比较陌生。也就是说,我需要为 RESTful 服务设置基于每个用户令牌的身份验证,但我不确定从哪里开始。任何指针将不胜感激。

【问题讨论】:

  • 它是用于整个站点的一个令牌,还是每个经过身份验证的用户对您站点的唯一令牌?
  • 每个用户。谢谢你的提问。我已经更新了原来的问题。

标签: python django web-services authentication


【解决方案1】:

我做过类似的事情,每个用户都有自己独特的令牌。我创建了一个 UserProfile 来存储令牌:

from django.contrib.auth.models import User

class UserProfile(models.Model):
    user = models.ForeignKey(User, unique=True)
    token = models.CharField(max_length=100, blank=True)

这个想法是登录文档中提到的 Django 用户。用户成功通过身份验证后,创建或更新 UserProfile 以存储令牌,您将通过调用身份验证 WS 或另一个将返回唯一令牌的 WS 获得该令牌。

当当前用户通过身份验证后,您应该可以使用存储的令牌调用其他 WS。

在你的settings.py

AUTH_PROFILE_MODULE = 'userprofiles.userprofile'

从视图代码来看,它是这样的:

request.user.get_profile().token

【讨论】:

    【解决方案2】:

    有一个django-tokenapi 包。它的主页/README 看起来非常有用。你已经看过了吗?如果是这样,请说明您尝试过的内容以及遇到的问题。

    请注意,我对 Django 不是很熟悉,所以我可能无法提供进一步的帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-19
      • 1970-01-01
      • 1970-01-01
      • 2019-12-26
      • 2015-11-18
      • 2016-07-31
      • 2014-08-03
      • 2015-10-14
      相关资源
      最近更新 更多