it-swarm-tr.com

Varsayılan php oturumunu geçersiz kıl

Arka planda joomla kullanarak bir AngularJs uygulaması inşa ediyorum. AngularJs uygulaması bir kez yüklenir ve daha sonra sunucuyu her zaman ajax aracılığıyla çağırır. Bazı çağrılar aynı anda gerçekleşir. Eğer varsayılan PHP oturumu bu aramalarda kullanıyorsam, php bir seferde bir çağrıyı işleyecek ve bu yüzden bir seferde birden fazla çağrıya izin vermek için kendi Oturum işleyicimi yazdım ve ben varsayılan php Oturum yerine bunu kullanmak istiyorum.Joomla bunu yapmak için kolay bir yolu var mı ya da kendi JSession sınıf yazmak zorunda kalacak?

Düzen

<?php
    session_start();
    sleep(10);
    echo "Hello";
?>

Bu dosyayı aynı tarayıcıda aynı anda iki kez çağırırsanız, ilk çağrı 10 saniye içinde geri döner, ikinci çağrı 20 saniye içinde geri döner. JSession sınıfı session_start () öğesini çağırır, böylece joomla aynı davranışa sahiptir.

Düzen

Veritabanı seçeneğini kullandığımızda veya JSessionStorage'ı kendi oturum işleyicisiyle genişlettiğimizde, joomla session_set_save_handler() kullanır ve oturumu kilitlemenin varsayılan davranışını değiştirir. Yani, session_start'ı çağırmanın oturumu kilitlemeyi içerdiğini söylediğimde yanılmışım.

3
csbenjamin

Kendi JSession sınıfınızı yazmak zorunda değilsiniz, ancak Joomla'nın oturum işlemeyle bütünleştirmek için JSessionStorage genişleten bir sınıf yazmanız gerekir.

Büyük olasılıkla, oturum işleyicisini Genel Yapılandırma ile ayarlamaya çalışırken sorun yaşarsınız. JFormFieldSessionHandler 'ı işleyicinizi içeren bir sürümle geçersiz kılın ya da configuration.php. Ancak ikinci seçenek, gelecekte Global Yapılandırmayı kullanmaya çalıştığınızda sorun yaşayabileceğiniz anlamına gelir.

3
Rouven Weßling

Düzenleme: Cevabın doğru olmadığını ekler.

Varsayılan Joomla Oturum İşleyicisi (Veritabanı), işlem sırasında oturumu kilitlemez. Yani kilitleme konusunda endişelenmenize gerek yok.

Her neyse, ilk isteğin oturum verilerini ikinci isteklerin verileriyle geçersiz kılmanız mümkündür.

4
Harald Leithner

Eşzamansız çağrılar dünyasına hoş geldiniz. Benim tavsiyem AJAX/RESTful çağrıları için hiç oturum kullanmayın. Yapacağım en iyi kimlik doğrulama jetonu var, bu yüzden kimin arama yaptığını biliyorsun.

3
Andrew Eddie

Joomla, sorununuzu çözebilecek yeni Oturum Depolama arka uçları oluşturmanıza olanak tanır. Özel oturum sınıfınızla JSessionStorage öğesini genişletmeniz yeterlidir; ardından işleyiciyi doğrudan configuration.php dosyanızda ayarlayabilirsiniz. (Özel oturum depolama arka uçları genel yönetici yapılandırmasında görünmüyor.)

2
Don Gilbert