问题标签 [django-rest-auth]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
12583 浏览

python - 如何让 django-rest-framework-jwt 在注册时返回令牌?

我有一个基本的 django rest 服务,它

  1. 注册一个人并且
  2. 更新他的密码。

我想在它上面添加 jwt 身份验证。如果我按照教程进行操作,我需要在项目的 urls.py 中添加一个名为“api-token-auth”的新 url。但是,我不想添加这个新的 url 并希望我的注册调用发送一个令牌作为响应。

这是我的代码:

序列化程序.py

视图.py

  1. 应该做些什么来实现这一目标?我应该在序列化程序的 create 方法中调用 api-auth-token 吗?
  2. django-rest-framework-jwt 如何处理多个身份验证令牌并正确识别哪个令牌属于哪个用户?特别是当它不在数据库中存储令牌时。
  3. 如何使用此身份验证机制来限制我的用户只能查看/更新/删除他的用户?
  4. 一般来说,我如何使用这种身份验证机制来做任何事情。例如,如果用户想将他的名字写入 /tmp/abcd.txt。如何确保只有经过身份验证的用户才能这样做?
  5. 这种方法有没有潜在的漏洞。如果我的应用程序要存储大量分类数据,我应该使用相同的代码吗?
0 投票
1 回答
211 浏览

django - 获取社交帐户用户的本地用户令牌

我正在使用 django-oauth-toolkit 作为我自己的 oauth2 提供者。allauth 用于所有身份验证。最重要的是rest-auth,它为两者提供了rest接口。

我的用户可以选择通过其他社交帐户提供商(例如 facebook 等)登录/注册

我通过/rest-auth/facebook/ POST 注册用户,其中包含(让我们留在示例中)facebook 的身份验证令牌 n。

作为回报,我得到了一些不是我需要的 oauth2 令牌的令牌。如何获取我的 oauth2 令牌?

0 投票
1 回答
1099 浏览

python - 自定义用户模型中的 django.db.utils.IntegrityError

自定义用户模型:

在运行./manage.py migrate时,我收到以下错误:

SHOW ENGINE INNODB STATUS在 mysql 上显示:

所以,我删除了整个数据库并重新创建它,仍然得到同样的错误。

settings.py文件:

0 投票
0 回答
291 浏览

angularjs - Django Rest Framework + AngularJS 未登录用户或抛出错误

这是我的 URLS.py:

所以要登录,我使用 URL /api-auth/login。当我转到 /api-auth/login 时,我看到了 DRF 登录屏幕。如果我输入了错误的用户名和密码,它会说:

如果我输入正确的用户名和密码,它会将页面重定向到我的 settings.py 中的 LOGIN_REDIRECT_URL,所以这部分有效。

但是,我希望能够在不访问 DRF 登录页面的情况下登录。当用户访问

这个视图被调用:

这是我的 home.html:

问题是,如果用户输入了错误的用户名和密码,console.log 上会出现“使用 self.user 成功登录”并且没有错误消息。最重要的是,如果用户使用正确的用户名和密码登录,用户不会被重定向到 LOIGN_REDIRECT_URL。知道为什么吗?

0 投票
1 回答
3694 浏览

django - 即使登录请求的凭据不正确,Django Rest Framework 也会返回 200 OK

这是我的 URLS.py:

这是 CMSApp/urls.py:

我的 HomePageView 服务于这个 home.html 页面:

当我注册一个已经存在的用户时,Django 返回一个 400 Bad Request 错误,这很好,因为我在前端使用 AngularJS 来处理 400 状态代码。

问题是,当我尝试使用不正确的用户名和密码(用户名不存在或用户名和密码不匹配)登录时,Django 返回 200 OK 状态码,因此我无法使用前端的 AngularJS。知道为什么当我尝试使用不正确的用户名和密码登录时 Django 返回 200 OK 吗?提交错误的用户名/密码时,如何让 Django 返回 400?

编辑:这是我原来的帖子:Django Rest Framework + AngularJS not logging user in or throwing errors and charlietfl 评论说“至于 ajax 错误处理。如果登录失败......使用真正的 REST 方法会发回 401 status 然后会触发您的 ajax 错误处理程序”,这就是为什么我在登录失败时不想要 200 OK 的原因。

0 投票
1 回答
1889 浏览

django - 移动应用程序的社交登录以使用 django-all-auth

我正在学习 django,几乎完成了一个网站的开发,我使用 django-allauth 进行社交登录和注册。现在我正在尝试开发一个应用程序并使用 DRF 实现 api 的某些部分,对于登录、注册、来自应用程序的身份验证,我发现 django-rest-auth 可以完成这项工作,并且能够注册、登录、注销等。 ..但我不知道如何从应用程序进行社交登录并将详细信息保存在现有数据库中。

对该过程有任何建议或参考吗?

谢谢

0 投票
2 回答
140 浏览

django - Django 无法识别我的令牌?

我在后端使用 Django Rest Framework,在前端使用 ember-cli 应用程序。身份验证工作正常,但授权中似乎存在漏洞。

当我向该端点发出请求时,/v1/me/它会返回 403。当我取消权限类时,我会返回{"id":null,"username":"","is_active":false},因为它不知道我是谁。

此外,当我使用可浏览 API 时,/v1/meURL 可以正常工作。

在 Ember 方面,我使用我的帐户登录并正确取回我的令牌。在请求Authorization: Token asdf1234asdf1234asdf1234中正在通过。我会认为 Django 接受了那个令牌并知道我是谁?我错过了什么吗?

0 投票
1 回答
299 浏览

python - 多个身份验证应用程序支持

在开发 Django 项目时,可以使用许多第三方认证包,例如:

  • Django OAuth Toolkit, OAuth 2.0 支持。
  • Djoser, 提供一组视图来处理注册、登录、注销、密码重置和帐户激活等基本操作。

目前,我只想支持基本的操作注册、登录等。所以Djoser可能是我最好的选择。

但是如果我以后想支持 OAuth 2.0,我会有两个令牌,一个是 from Djoser,另一个是 from Django OAuth Toolkit。我只是在这里感到困惑,如何同时处理两个令牌?

或者我应该用 替换DjoserDjango OAuth Toolkit如果是的话,如何支持注册等基本操作?

0 投票
1 回答
1198 浏览

django - Django REST框架APIClient在shell中进行身份验证,但不在我的单元测试中

我正在尝试使用此处的示例对 REST API 视图集进行单元测试。如果我在 manage.py shell 中逐行运行代码,我可以很好地进行身份验证并获得 200 响应代码。当它在我的单元测试中时,身份验证失败!

这是课程:

如果我将断言更改为:

它也失败了,而 shell 中的相同命令返回 True。

0 投票
3 回答
8568 浏览

django - Django + DRF:403 FORBIDDEN:CSRF 令牌丢失或不正确

我有一个 Android 客户端应用程序,它尝试使用 Django + DRF 后端进行身份验证。但是,当我尝试登录时,我得到以下响应:

请求被发送到http://localhost/rest-auth/google/以下正文:

什么可能导致这种情况?客户端没有 CSRF 令牌,因为 POST 进行身份验证是客户端和服务器之间发生的第一件事。我检查了很多过去有同样问题的问题,但我找不到任何解决方案。

Django端的相关设置是这样的: