带有 django-rest-auth 和 django-rest-knox 的 AttributeError - 令牌序列化器
Posted
技术标签:
【中文标题】带有 django-rest-auth 和 django-rest-knox 的 AttributeError - 令牌序列化器【英文标题】:AttributeError with django-rest-auth and django-rest-knox - Token Serializer 【发布时间】:2019-05-23 18:05:58 【问题描述】:我目前正在为 React 前端应用程序设置 django 后端。
作为其中的一部分,我使用 django-rest-auth 和 django-allauth 进行注册和身份验证。我想通过 django-rest-knox 实现更好的令牌管理。
我使用以下代码开始并使用 rest-auth 和 allauth(有效)修改我现有的应用程序:
https://gist.github.com/AndrewPix/cdd9276b1d5683459b965d5cc4517b26
我的问题如下:
当我将我的凭据发布到 url /rest-auth/login 时,在后端为正确的用户创建了一个具有所有属性(例如到期日期)的令牌,但我没有得到令牌和用户作为 API 调用的一部分返回。相反,我收到以下错误:
/rest-auth/login/ 处的 AttributeError
尝试在序列化程序 KnoxSerializer
上获取字段 token
的值时出现 AttributeError。
序列化程序字段可能命名不正确,并且与 str
实例上的任何属性或键都不匹配。
原始异常文本是:“str”对象没有属性“token”。
任何帮助将不胜感激。我认为 KnoxSerializer 出了点问题,但我不知道是什么?
谢谢!
上午
【问题讨论】:
【参考方案1】:修复来自网址!非常简单的深夜错误。 KnoxLoginView 的 URL 路径放在包含 djang-rest-auth url 之后,而不是之前。
通过注册 URL url(r'^rest-auth/login/', views.KnoxLoginView.as_view())
并将其包含在 url(r'^rest-auth/', include('rest_auth.urls'))
行之前,它可以工作。
【讨论】:
以上是关于带有 django-rest-auth 和 django-rest-knox 的 AttributeError - 令牌序列化器的主要内容,如果未能解决你的问题,请参考以下文章
使用 Django-rest-auth 创建新用户时创建自定义用户模型
Django-rest-auth 和 AWS - 错误 401
有啥方法可以更改登录的 Django-rest-auth 视图?