django-pyroven é um app Django Django que fornece um backend de autenticação que pode ser adicionado ao AUTHENTICATION_BACKENDS no módulo de configurações do Django:
AUTHENTICATION_BACKENDS = (
& Nbsp; "pyroven.pyroven_django.RavenAuthBackend ',
& Nbsp; "django.contrib.auth.backends.ModelBackend '
)
Isso permite que tanto normal de login Django e Raven login.
Qualquer coisa usando pyroven deve certificar-se de que a configuração é carregado; isso é feito definindo a variável de configuração na classe singleton Raven:
de pyroven RavenConfig importação
de importação pyroven.pyroven_django Corvo
def configure ():
& Nbsp; r = Raven ()
& Nbsp; se r.config é None:
& Nbsp; r.config = RavenConfig ("raven.ini")
A página de login deve redirecionar os usuários para Raven:
raven_login def (request):
& Nbsp; # Certifique-se de que estamos devidamente configurado
& Nbsp; configure ()
& Nbsp; # Obtenha o objeto Corvo e retornar um redirecionamento para o servidor do corvo
& Nbsp; r = Raven ()
& Nbsp; retorno r.get_login_redirect ()
Quando o usuário autenticado com Raven, o servidor Corvo irá redirecioná-los de volta para o seu site (o exato é especificado no arquivo .ini acima). A página de retorno deve chamar o Django autenticar e funções de login com um token recebido do servidor Corvo via HTTP GET:
de django.contrib.auth autenticar importação, de login
raven_return def (request):
& Nbsp; # Certifique-se de que estamos devidamente configurado
& Nbsp; configure ()
& Nbsp; # obter o token que o servidor Corvo nos enviou - este deve realmente
& Nbsp; # ter um try / excepto em torno dele para pegar KeyError
& Nbsp; de token = request.GET ['WLS-Response']
& Nbsp; # Veja se isso é um token válido
& Nbsp; user = autenticar (response_str = token)
& Nbsp; se o usuário é None:
& Nbsp; # Algum tipo de err
& Nbsp; mais:
& Nbsp; login (solicitação, o usuário)
& Nbsp; # Redirecionar em algum lugar sensível
& Nbsp; retornar HttpResponseRedirect ('/')
O arquivo .ini que as configurações Corvo são carregados a partir tem o seguinte formato:
[Corvo]
login_url = "http://raven.cam.ac.uk/auth/authenticate.html"
logout_url = "http://raven.cam.ac.uk/auth/logout.html"
return_url = "http://your.server.cam.ac.uk/ravenreturn/"
pubkeys = {'2': '/ path / to / pubkey2.crt'}
Requisitos :
- Python
- Django
Comentários não encontrado