Executando verificação de segurança...
1

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

Carregando publicação patrocinada...
1

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/"]
}
1

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