简体   繁体   English

带有jwt令牌的Django API Rest Framework和Angular 7身份验证

[英]Django API Rest Framework and Angular 7 Authentication with jwt token

I am using Django Rest Framework for the back-end and Angular 7 for the user interface. 我正在将Django Rest Framework用于后端,并将Angular 7用于用户界面。 I'm trying to create a login page to my single page application and authenticate with a jwt token. 我正在尝试创建单页应用程序的登录页面并使用jwt令牌进行身份验证。 I've already managed the back-end and it works. 我已经管理了后端,并且可以正常工作。 Whenever i go to /api-token-auth/ and type the credentials i get a token in the rest framework interface. 每当我进入/ api-token-auth /并输入凭据时,我都会在其余框架界面中获得一个令牌。 The front-end part though troubles me. 前端部分虽然困扰我。 I have created the login component, the authorization service and a token interceptor. 我已经创建了登录组件,授权服务和令牌拦截器。 I believe i did the right adjustments but whenever i try to login from angular this error appears in the django command promt. 我相信我做了正确的调整,但是每当我尝试从angular登录时,此错误都会出现在django命令promt中。

"Bad Request: /api-token-auth/ [19/Nov/2018 20:16:16] "POST /api-token-auth/ HTTP/1.1" 400 68 Traceback (most recent call last): “错误的请求:/ api-token-auth / [19 / Nov / 2018 20:16:16]“ POST / api-token-auth / HTTP / 1.1” 400 68追溯(最近一次通话):
File "C:\\Python36\\lib\\wsgiref\\handlers.py", line 138, in run self.finish_response() File "C:\\Python36\\lib\\wsgiref\\handlers.py", line 180, in finish_response self.write(data) File "C:\\Python36\\lib\\wsgiref\\handlers.py", line 274, in write self.send_headers() File "C:\\Python36\\lib\\wsgiref\\handlers.py", line 332, in send_headers self.send_preamble() File "C:\\Python36\\lib\\wsgiref\\handlers.py", line 255, in send_preamble ('Date: %s\\r\\n' % format_date_time(time.time())).encode('iso-8859-1') File "C:\\Python36\\lib\\wsgiref\\handlers.py", line 453, in _write result = self.stdout.write(data) File "C:\\Python36\\lib\\socketserver.py", line 775, in write self._sock.sendall(b) ConnectionAbortedError: [WinError 10053] An established connection was aborted by the software in your host machine [19/Nov/2018 20:16:16] "POST /api-token-auth/ HTTP/1.1" 500 59 ---------------------------------------- Exception happened during processing of request from ('127.0.0.1', 51566) Traceback (most recent call last): File 运行self.finish_response()中的文件“ C:\\ Python36 \\ lib \\ wsgiref \\ handlers.py”,行138,finish_response self.write中的文件“ C:\\ Python36 \\ lib \\ wsgiref \\ handlers.py”,行180 (数据)写入self.send_headers中的文件“ C:\\ Python36 \\ lib \\ wsgiref \\ handlers.py”,行274()文件send_headers中的文件“ C:\\ Python36 \\ lib \\ wsgiref \\ handlers.py”,行332 self.send_preamble()在send_preamble('Date:%s \\ r \\ n'%format_date_time(time.time()))中的文件“ C:\\ Python36 \\ lib \\ wsgiref \\ handlers.py”,行255中。encode( 'iso-8859-1')文件“ C:\\ Python36 \\ lib \\ wsgiref \\ handlers.py”,第453行,_write结果= self.stdout.write(data)文件“ C:\\ Python36 \\ lib \\ socketserver”。 py“,行775,写self._sock.sendall(b)ConnectionAbortedError:[WinError 10053]主机中的软件中止了已建立的连接[19 / Nov / 2018 20:16:16]” POST / api -token-auth / HTTP / 1.1“ 500 59 --------------------------------------- -在处理来自('127.0.0.1',51566)的请求的过程中发生了异常(回溯最近一次调用):文件 "C:\\Python36\\lib\\wsgiref\\handlers.py", line 138, in run self.finish_response() File "C:\\Python36\\lib\\wsgiref\\handlers.py", line 180, in finish_response self.write(data) File "C:\\Python36\\lib\\wsgiref\\handlers.py", line 274, in write self.send_headers() File "C:\\Python36\\lib\\wsgiref\\handlers.py", line 332, in send_headers self.send_preamble() File "C:\\Python36\\lib\\wsgiref\\handlers.py", line 255, in send_preamble ('Date: %s\\r\\n' % format_date_time(time.time())).encode('iso-8859-1') File "C:\\Python36\\lib\\wsgiref\\handlers.py", line 453, in _write result = self.stdout.write(data) File "C:\\Python36\\lib\\socketserver.py", line 775, in write self._sock.sendall(b) ConnectionAbortedError: [WinError 10053] An established connection was aborted by the software in your host machine 运行self.finish_response()中的第138行的“ C:\\ Python36 \\ lib \\ wsgiref \\ handlers.py”,finish_response self.write中的第180行的“ C:\\ Python36 \\ lib \\ wsgiref \\ handlers.py”文件(数据)文件“ C:\\ Python36 \\ lib \\ wsgiref \\ handlers.py”,第274行,写self.send_headers()文件“ C:\\ Python36 \\ lib \\ wsgiref \\ handlers.py”,第332行,send_headers自身.send_preamble()在send_preamble('Date:%s \\ r \\ n'%format_date_time(time.time()))中的文件“ C:\\ Python36 \\ lib \\ wsgiref \\ handlers.py”,第255行。encode(' iso-8859-1')文件“ C:\\ Python36 \\ lib \\ wsgiref \\ handlers.py”,第453行,_write结果= self.stdout.write(data)文件“ C:\\ Python36 \\ lib \\ socketserver.py “,行775,写self._sock.sendall(b)ConnectionAbortedError:[WinError 10053]已建立的连接被主机中的软件中止了

During handling of the above exception, another exception occurred: 在处理上述异常期间,发生了另一个异常:

Traceback (most recent call last): File "C:\\Python36\\lib\\wsgiref\\handlers.py", line 141, in run self.handle_error() File "C:\\Python36\\lib\\site-packages\\django\\core\\servers\\basehttp.py", line 86, in handle_error super().handle_error() File "C:\\Python36\\lib\\wsgiref\\handlers.py", line 368, in handle_error self.finish_response() File "C:\\Python36\\lib\\wsgiref\\handlers.py", line 180, in finish_response self.write(data) File "C:\\Python36\\lib\\wsgiref\\handlers.py", line 274, in write self.send_headers() File "C:\\Python36\\lib\\wsgiref\\handlers.py", line 331, in send_headers if not self.origin_server or self.client_is_modern(): File "C:\\Python36\\lib\\wsgiref\\handlers.py", line 344, in client_is_modern return self.environ['SERVER_PROTOCOL'].upper() != 'HTTP/0.9' TypeError: 'NoneType' object is not subscriptable 追溯(最近一次通话):文件“ C:\\ Python36 \\ lib \\ wsgiref \\ handlers.py”,行141,运行self.handle_error()文件“ C:\\ Python36 \\ lib \\ site-packages \\ django \\ core” \\ servers \\ basehttp.py“,在handle_error super()。handle_error()中的第86行,文件” C:\\ Python36 \\ lib \\ wsgiref \\ handlers.py“,在handle_error中的368行,self.finish_response()文件,” C: “ \\ Python36 \\ lib \\ wsgiref \\ handlers.py”,行180,位于finish_response self.write(data)文件中,“ C:\\ Python36 \\ lib \\ wsgiref \\ handlers.py”,行274,位于写入self.send_headers()文件中如果不是self.origin_server或self.client_is_modern(),则send_headers中的“ C:\\ Python36 \\ lib \\ wsgiref \\ handlers.py”,行331,文件“ C:\\ Python36 \\ lib \\ wsgiref \\ handlers.py”,行344 ,在client_is_modern中返回self.environ ['SERVER_PROTOCOL']。upper()!='HTTP / 0.9'TypeError:'NoneType'对象不可下标

During handling of the above exception, another exception occurred: 在处理上述异常期间,发生了另一个异常:

Traceback (most recent call last): File "C:\\Python36\\lib\\socketserver.py", line 639, in process_request_thread self.finish_request(request, client_address) File "C:\\Python36\\lib\\socketserver.py", line 361, in finish_request self.RequestHandlerClass(request, client_address, self) File "C:\\Python36\\lib\\socketserver.py", line 696, in init self.handle() File "C:\\Python36\\lib\\site-packages\\django\\core\\servers\\basehttp.py", line 154, in handle handler.run(self.server.get_app()) File "C:\\Python36\\lib\\wsgiref\\handlers.py", line 144, in run self.close() File "C:\\Python36\\lib\\wsgiref\\simple_server.py", line 35, in close self.status.split(' ',1)[0], self.bytes_sent AttributeError: 'NoneType' object has no attribute 'split'" 追溯(最近一次通话最近):process_request_thread self.finish_request(request,client_address)中的文件“ C:\\ Python36 \\ lib \\ socketserver.py”,行“ C:\\ Python36 \\ lib \\ socketserver.py”,行361,在finish_request self.RequestHandlerClass(请求,CLIENT_ADDRESS,个体经营)文件“C:\\ Python36 \\ LIB \\ socketserver.py”,线路696,在初始化 self.handle()文件“C:\\ Python36 \\ LIB \\站点包\\ django \\ core \\ servers \\ basehttp.py“,第154行,在句柄handler.run(self.server.get_app())中运行的文件“ C:\\ Python36 \\ lib \\ wsgiref \\ handlers.py”,第144行self.close()文件“ C:\\ Python36 \\ lib \\ wsgiref \\ simple_server.py”,第35行,处于关闭状态self.status.split('',1)[0],self.bytes_sent AttributeError:'NoneType'对象没有属性“ split”

I'm really trying to understand what is going on based in this error. 我真的在尝试基于此错误了解发生了什么。 Anybody has an idea? 有人有主意吗? Thanks 谢谢

UPDATE UPDATE

I had never imported the FormsModuls and apparently that was causing the issue. 我从未导入过FormsModuls,显然这是导致问题的原因。

line 35, in close self.status.split(' ',1)[0], self.bytes_sent
AttributeError: 'NoneType' object has no attribute 'split'

Due to some reason, the attribute self.status is returning None which cannot be split, thus, causing errors. 由于某种原因,属性self.status返回的None不能被拆分,从而导致错误。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM