cria um sistema de Permissão x perfil X usuário com JWT.

a cada view protegida você vai ter um método que cria uma permissão dinâmica para esse view que vai ser criada ao usuário acessar essa rota, após a permissão criada você atribui ela a um perfil e esse perfil ao usuário. se algum outro usuário tentar entrar na mesma rota ele vai ser bloqueado pois ele não tem a permissão necessária. utilize JWT para transformar a permissão em um token e atribuir esse token a sessão do usuário uma vez o usuário saindo da sessão a rota vai estar livre para outro poder utilizar.

fiz algo parecido para um sistema que lidava com dados sensíveis e as vezes eles precisavam ser editados diversas vezes então para garantir que as pessoas pudessem estar lidando com a informações atualizadas adicionei um sistema de fila para que cada um dos requests só fosse direcionado a rota quando realmente tivesse sido liberada pelo usuário que a estava utilizando. enfim boa sorte aí mano qq coisa se puder ajudar mais entra em contato

Hm vou tirar um dias pra pensar como vou implementar essa lógica, também vou tentar a lógica do websocket do clacerda, vou criar duas branches diferentes para então tentar.

Mas como você lidaria com a inatividade e a saída do usuário daquela tela? Teria uma amostra de como você fez? Eu entendi, o que você fez, criou um modelo DynamicJwt, que contem um user_id que no caso do django é só criar uma fk, e colocou um charfiel para o código JWT. Cada view tem seu próprio JWT sendo gerado constante? ou ele é fixo? e ai quando o usuário acessa , a tebela DynamicJwt é preenchida com o usuário, e quando ela está diferente de null ou blank, ele pode ser acessado?

É parecido com o que fiz, porém eu coloquei os paths em um jsonfields dentro de um array e quando eu vou procurar eu procuro como view_informations__paths__contains=path eu gostei e realmente funciona, o porém vem da inatividade e da saída do usuário da view, que eu tentie resolver porcamente com um js, nem sei se isso é seguro.

{
    "paths": ["profile/1/", "profile/2/"]
}
como você vai definir um JWT você pode definir nele a duração da sessão. e com JS consultar enviar uma requisição para verificar se o usuário ainda pode visualizar a página. assim caso ele passe do tempo limite e ele perde o token e a página da um get nela mesmo e como ele não vai ter a permissão dessa vez ele não vai conseguir acessar a view. tenho um exemplo bem básico disso que posso te encaminhar fiz em flask e tbm um em django