Django: Aplicando decoradores de controle de acesso mutilple a uma visão

votos
1

Eu estou tentando expor uma única chamada de API usando três mecanismos de autenticação diferentes: login_required do Django, HTTP autenticação básica, e OAuth. Eu tenho decoradores para todos os três, mas não consigo descobrir como fazer com que todos eles se dão bem.

A lógica necessária é permitir o acesso à vista, se qualquer um dos decoradores / mecanismos de autenticação são válidos para a solicitação do usuário - basicamente um OR. No entanto, se eu simplesmente incluir todos os três decoradores, em seguida, todos querem ser satisfeitos antes de deixar a solicitação através - um AND.

O que é uma boa maneira de lidar com isso?

Publicado 27/08/2009 em 01:10
fonte usuário
Em outras línguas...                            


1 respostas

votos
3

Eu não tenho certeza que você pode. Suponha que o usuário não está logado: se estiver usando login_requiredo servidor seria redirecionar para um formulário de login, enquanto usando autenticação básica, o servidor retorna uma página de erro 401 com um WWW-Authenticatecabeçalho de resposta. Qual destes você quer que aconteça? Não vejo como poderia ser de ambos.

Respondeu 27/08/2009 em 01:28
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more