(SSO) yeni session id üretme günü PHP Single Sign

2 Cevap php

Ben süreci tek bir oturum oluşturmak için çalışıyorum. I uygulamış gibi bir yöntem, bir veri tabanında bulunan oturum veri depolama kullanır.

Yeni bir kullanıcı web sitesine gelince (www.example2.com) kimlik bir tablo kontrol edilir. Bu web sitesine ilk ziyaret olarak, bir maç olacak.

Tarayıcı ABC123 www.example2.com oluşturulan oturum kimliği temsil kimlik doğrulama sunucusu www.example1.com/authenticate.php?session_id=ABC123 için redicted edilir. Sonra www.example1.com üzerinde oluşturulan session id URL belirlenen parametre kullanarak tarafında session id saklanır.

Kullanıcı daha sonra geri www.example2.com yönlendirilir ve oturum kimlikleri bir maç bulunmalıdır.

Bu FireFox iyi çalışıyor ama ben Chrome'da denedim zaman tarayıcı yeni bir oturum kimliği olduğunu geri www.example2.com yönlendirilir zaman session id üretiliyor fark ettim. Bunun sonucunda sonsuz bir döngü oluşturulur. Bu davranış FireFox lutfen kendini tezahür değil.

Ne yeni bir oturum kimliği oluşturulmasına neden oluyor? Daha da önemlisi, bunu durdurmak için ne yapabilirim?

Şimdiden teşekkürler!

EDIT
I had a logically error that was causing an infinite loop. This now works fine again in FireFox but the infinite loop is still occuring in Chrome and Internet Explorer.

2 Cevap

Yoluyla kod mantığını takip ederek, bazı değişiklikler yaptık. Şimdi her şey çalışıyor görünüyor. Bu olsa Firefox'u etkilemez niye karıştı biraz.

Herkesin ilgi için teşekkür ederiz.

Bir oturumun bütün fikir, yalnızca bir etki alanı için geçerli olmasıdır. aksi takdirde diğer etki sizin oturumunu ele geçirebilir. Bir tarayıcısı için yazılmış değildi hangi bir etki alanı için (session id içeren) bir çerez vermemelidir. yani sizin www.yourbank.com oturum için session id www.preatesteallingtheieves.com adında bir web sitesi tarafından okunması mümkün olmamalı, ve tarayıcı oluyor bu durdurmak olacaktır. (Ne olursa olsun kullanmak ne oturumu isim.)

SO: session ID's are not shared between domains, even if you give them the same name.