Javascript php sunucu tarafında oturum açma / oturum kapatma hakkında bildirmek için tavsiye edilen bir yol?

6 Cevap php

Uygun bildirim amaçlı, bilgi amaçlı güvenli değildir:

Ben bunu durdurmak istiyorum oturum sırasında dışarı giriş yaparken yeni bilgiler için javascript yoklama var. Javascript dışarı logged-in/logged durumu hakkında bildirmek için en iyi yolu nedir?

Run a javascript function on login, and one on logout (which might get skipped if they navigate away and come back directly)? Run a poll periodically to check for access to secure (logged-in-only) information and skip further polls if that access isn't available? Another option that I haven't found yet?

Konularda eğer, php sunucu tarafı koşuyorum.

6 Cevap

Cookie yaklaşım çalışmalıdır. Yapabileceğiniz başka bir şey başka bir şey yapamaz eğer ne, belki de oturum için yönlendirmek kullanıcı oturum açmış eğer yapman eğer Ardından, önce başka bir kodu olduğunu kontrol true veya false döndüren bir JSON sayfa oluşturmak olduğu sayfa?

JQuery böyle bir şey gider:

$.getJSON("/login/is_logged", function(json) {
    if(!json.User.logged) {
    	window.location = '/login/form/';
    }
});

JSON sayfası (url / login / is_logged) Bu döndürür:

{"User":{"logged":true}}

İşte link $.getJSON olarak bulunuyor.

Giriş / çıkış eylemler üzerinde bir cookie: örneğin logged=1 :)

Normal olarak javascript anket var, ve bu süre çıktınız yoklamak çalıştığında, bir hata döndürür.

Kullanıcının oturum doğruysa, onlar değilseniz false: Sen sadece sayfa yükleme süresi bir JavaScript boolean ayarlayabilirsiniz.

Sen <body> veya <html> etiketlerine bir class="loggedin" veya id="loggedin" eklemek ve DOM / jQuery fonksiyonları ile bu okuyabilirsiniz.

HTML etiketinin sınıfı ile okunabilir: document.documentElement.className.

Kullanıcı Giriş yapmadınız, ya da eğer sunucu tarafı PHP zaten bildiği için, çok sayfasında <script> kodu "oturum" uygun ekleyebilirsiniz.

Tamam, burada yapmaya karar budur:

  • Keep a boolean that corresponds to
    logged in/logged out state (1 or 0).
  • Giriş 1. değiştirir.
  • Logout 0 değiştirir.
  • If the existing polling checks the api and gets false return values because a logout has occurred, it will toggle the boolean to 0 as well (after either 1 or two false information checks).
  • Once the boolean is 0, no further polling will occur until a login event toggles it back to 1.