Я использую угловые 5 на передней части. С HTTP-перехватчиком, который, если клиент вошел в систему, отправляет токен вместе с любым http-запросом, сделанным на мой сервер. Я могу войти в мою систему. Так что схема JWT работает правильно.
Перехватчик выглядит так: я консоль регистрирую токен, чтобы убедиться, что он добавляется, и он корректно работает в моих журналах.
import { Injectable } from '@angular/core';
import {
HttpRequest,
HttpHandler,
HttpEvent,
HttpInterceptor
} from '@angular/common/http';
import {UserAuthorizationService} from "../userservice/userauthorizationservice/userauthorizationservice";
import { Observable } from 'rxjs/Observable';
@Injectable()
export class TokenInterceptor implements HttpInterceptor{
constructor(private tokenservice: UserAuthorizationService){}
intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>>{
let token = this.tokenservice.checklocalfortoken();
if(token == null){
token = this.tokenservice.checksessionfortoken();
}
if(token != null){
console.log('here is the token being sent');
console.log(token);
request = request.clone({
setHeaders: {
Authorization: 'JWT ' + token
}
});
}
return next.handle(request);
}
}
Схема токена работает, я ее проверил.
Настройки установлены правильно. Практически все, что нужно сделать в этом руководстве, сделано:
http://getblimp.github.io/django-rest-framework-jwt/
переход к реальному виду:
class CreateSuitsuser(APIView):
permission_classes = (Issuitssuperuser,)
def post(self, request, *args, **kwargs):
serialized = CreateSuitsUserSerializer(data=request.data)
if serialized.is_valid(raise_exception=True):
data = serialized.data
...
класс разрешений:
class Issuitssuperuser(BasePermission):
def has_permission(self, request, view):
if request.user.issuitssuperuser:
return True
return False
ошибка:
if request.user ['issitssuperuser']:
Ошибка TypeEr: объект AnonymousUser не имеет атрибута getitem
[10 / May / 2018 20:36:51] "ОПЦИИ / API / пользователь / костюмы / HTTP / 1.1" 500 21855
Выполнение системных проверок ...
а зачем? Это не круто. Что я делаю неправильно, что не делает это круто? Я бы хотел, чтобы это было круто.