- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个关于使用 django-rest-knox 进行身份验证的问题。我想在客户端使用 cookie 存储,而不是 localStorage。所以我将像下面这样实现
class LoginView(GenericAPIView):
serializer_class = LoginSerializer
permission_classes = (AllowAny,)
def post(self, request, *args, **kwargs):
serializer = self.get_serializer(data=request.data)
serializer.is_valid(raise_exception=True)
user = serializer.validated_data
token = AuthToken.objects.create(user)
response = Response({
'user': UserSerializer(user, context=self.get_serializer_context()).data,
'token': token
})
response.set_cookie('token',
token,
httponly=True)
return response
使用 django-rest-knox 的方法正确吗?或者我需要使用localStorage吗?我不想使用 JWT,因为我在这里看到了很多负面意见。
最佳答案
首先,感谢您提出这个问题。我有类似的要求,不使用本地存储,并且您的工作得到了正确的方向。
看看 Knox 的 LoginView
实现 ( here ),看起来有相当多的逻辑没有在您的版本中复制(例如, token 计数限制)。
我采用了扩展 Knox 的 LoginView
的方法。我调用默认的 post
方法来使用 Knox 的实现,然后删除我不希望客户端上的 JS 可用的信息。
from django.contrib.auth import login
from rest_framework import permissions
from rest_framework.authtoken.serializers import AuthTokenSerializer
from knox.views import LoginView as KnoxLoginView
class LoginView(KnoxLoginView):
permission_classes = (permissions.AllowAny,)
def post(self, request, format=None):
serializer = AuthTokenSerializer(data=request.data)
serializer.is_valid(raise_exception=True)
user = serializer.validated_data['user']
login(request, user)
response = super(LoginView, self).post(request, format=None)
token = response.data['token']
del response.data['token']
response.set_cookie(
'auth_token',
token,
httponly=True,
samesite='strict'
)
return response
关于reactjs - django-rest-knox 与 cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54753034/
我开发了一个在 Samsung Knox 环境中运行的应用程序。由于 Knox 环境的限制,我需要应用程序根据它是在 Knox 容器中还是在 Knox 容器外做出不同的响应。应用程序如何以编程方式判断
我正在制作一个简单的 QR 扫描应用程序,并使用 Google 的开源 Zebra Crossing 库来做到这一点。我以前做过一个,正在尝试与上次完全相同的方法,但某个 Knox 注册服务妨碍了我。
是否可以使用 Knox Provider 扩展编写 DB 连接器? 我希望 Knox 公开端点以响应 Knox 将放入或从数据库记录中获取的端点。 最佳答案 取决于您要如何连接以及要添加什么功能。目前
如何从 android SDK 以编程方式访问 KNOX 计数器? 我希望我的应用检查该值,以尝试确定它是否在已获得 root 权限的三星手机上运行。 最佳答案 我刚刚反编译了KNOX Status
有谁知道如何构建与 Samsung Knox 兼容的测试应用程序?为安装了 Knox 的三星设备构建应用程序有何不同? 最佳答案 从 KNOX 2.0 开始,不需要应用包装。 这是来自三星 KNOX
首先,如果这个问题不适合放在这个位置,我深表歉意,因为它不是严格意义上的代码问题,但我正在努力在其他地方找到任何相关资源。 我们有一个基于使用三星设备(目前为 S7s)作为完全托管设备的解决方案,其应
我将 Django-rest-Knox 添加到 requirement.txt 中,然后在我的终端中运行 “docker-compose up” 命令。但是,我收到此错误消息“ModuleNotFou
例如,假设我有一个系统,其入口点是 Apache Knox,它将请求重定向到 Apache NiFi。让我们进一步假设我向服务器发送消息 A 和 B 并且 Apache Knox 首先接收消息 A 然
我有一个在 Android 手机上运行的应用程序。这个想法是,从用户的角度来看,手机实际上只是一个屏幕,然后该应用程序在后台完成所有工作并控制第 3 方蓝牙设备,该设备根据用户的一系列问题启用或禁用车
本文整理了Java中org.apache.knox.gateway.util.XmlUtils类的一些代码示例,展示了XmlUtils类的具体用法。这些代码示例主要来源于Github/Stackove
我有一个关于使用 django-rest-knox 进行身份验证的问题。我想在客户端使用 cookie 存储,而不是 localStorage。所以我将像下面这样实现 class LoginView(
我已经尝试使用 knox 将文件 (message.txt) 上传到 aws s3 很多天了。和 Node js。 我一直有一个签名不匹配的错误。 我在 Node js 中的代码(上传不工作所以我只是
我的应用程序在接收来自 Knox 内部 GCM 的消息时遇到了很大的问题。 Knox 之外的同一个应用程序可以毫无问题地接收消息。同一个应用程序在外部和内部注册到 GCM。为什么 GCM 在 Knox
每次从 Samsung Knox 工作方式切换到私有(private)方式时,我的应用程序都会被终止。 亚行日志: 04-25 16:25:41.868 2945-3700/? I/ActivityM
这是一个脑筋急转弯问题,我实际上知道答案。我悬赏它是因为它代表了一个有值(value)的 Node 编程安全提示(这是第一个提示)。 提示2:在HTTP请求中,“Content-Length”头字段的
我正在尝试使用以下方法从 Node 中的 s3 检索图像: app.get('/photos', function(req, res, next) { var data = ''; s3.get('/
我正在开发一个应用程序,当只为用户打开一个应用程序时(不是通过 Knox 密封模式)使用 Airwatch 将设备输入单一用途设备,并且还使用 Knox SDK 来管理设备设置等。我想在应用程序处于信
我正在使用nodejs npm 包“knox”连接到亚马逊s3。我想创建一个下载网址。 目前我使用: var expires = new Date(); expires.setMinutes(expi
我创建了一个简单的 REST Web 服务,它从 curl 返回 {"code":4,"type":"ok","message":"hello there!"} -k -u admin:admin -
我目前正致力于扩展 Apache Knox 与 HDP 2.3.2 上的 HBase 交互的功能。我在 Apache Knox 上创建了一个名为 Decode 的新网关,用于查询 HBase。解码网关
我是一名优秀的程序员,十分优秀!