Django kimlik ve giriş gerektiren URL Ajax
Django kodlu web sitem için Ajax-kibarlığın bazı şeyler eklemek istiyorum.
Django Şifremi, django.contrib.auth.decorators
@login_required
dekoratör kimlik doğrulaması gerektiren işaretlemek için kullanıyorum. Kimliği doğrulanmış bir kullanıcı onu yönlendirmek için tıkladığında varsayılan davranış sayfasına giriş ve hedef sayfa geçirin.
Ne gördüm bazı siteler ve gerçekten çok seviliyor, o zaman kullanıcı bir bağlantıyı tıklama önde gelen bir yer kısıtlı oturum-tek kullanıcılar yerine yönlendirildi almak için bir oturum açma sayfası, O/O alır bir popup pencere () JavaScript) soruyor ona giriş yapın ya da kayıt olun. Yönlendirme parçası, bir kullanıcı "geri eğer gerçekten web sitesi zaman kayıt ziyan edecek kadar sevmiyor o verirse." tuşunu kullanın gerek yok
Yani, soru şudur: nasıl "yasak" JavaScript onclick
olay ve görüntü işleyebilir bir bomba? lütfen oturum otomatik olarak bazı bağlantılar işaretleme görevini yaparsın sen
CEVAP
Aynı sorunla karşı karşıyayım, ve senin gibi, diğer görüşleri var, aynı şekilde kimlik doğrulama işlemek için Django ajax bir görünüm etrafında sarmak için basit bir dekoratör istiyorum. Bana umut verici görünüyor bir yaklaşım yanıt olarak belirli bir değeri arar JavaScript ile birlikte böyle bir dekoratör kullanmaktır.
Buradailkdekoratör taslak revize:
from functools import wraps
def ajax_login_required(view_func):
@wraps(view_func)
def wrapper(request, *args, **kwargs):
if request.user.is_authenticated():
return view_func(request, *args, **kwargs)
json = simplejson.dumps({ 'not_authenticated': True })
return HttpResponse(json, mimetype='application/json')
return wrapper
İşte görünümü:
@ajax_login_required
def ajax_update_module(request, module_slug, action):
# Etc ...
return HttpResponse(json, mimetype='application/json')
Ve burada JavaScript () jQuery
$.post('/restricted-url/', data, function(json) {
if (json.not_authenticated) {
alert('Not authorized.'); // Or something in a message DIV
return;
}
// Etc ...
});
EDİT: Önerilen functools.wraps
, kullanmaya çalıştık. Aslında çalışma kodu, Olası hataların sakının bu dekoratör kullandım.
Nasıl değiştirmek dosya < seçilen;ty...
Neden AuthorizeAttribute kimlik doğrul...
http temel kimlik doğrulaması "&q...
Eğer kullanıcı giriş olup olmadığını k...
Java kullanarak kimlik doğrulaması ger...