PDA

View Full Version : Đăng nhập ở trang web http://..a.com mà http://..a1.com vẫn hiểu ?



Nhân Tâm
29-01-2007, 08:49
Các bác cho hỏi:
Người dùng username:nguyen, password : ******x.
Đăng nhập vào trang web http://a.com (đăng nhập thành công) thì khi mở tiếp trang http://a1.com nó vẫn hiểu là người dùng (ID: nguyen )đã đăng nhập rồi ?

a.com & a1.com cùng đặt trên 1 host nhưng là 1 tên miền khác nhau, cùng kiểm tra chung 1 cở sở dữ liệu người dùng (khi login).

anhtuannd
29-01-2007, 10:57
Các bác cho hỏi:
Người dùng username:nguyen, password : ******x.
Đăng nhập vào trang web http://a.com (đăng nhập thành công) thì khi mở tiếp trang http://a1.com nó vẫn hiểu là người dùng (ID: nguyen )đã đăng nhập rồi ?

a.com & a1.com cùng đặt trên 1 host nhưng là 1 tên miền khác nhau, cùng kiểm tra chung 1 cở sở dữ liệu người dùng (khi login).
Không được, mỗi cookie chỉ valid trên một domain thôi.

kid08
29-01-2007, 12:23
thì lúc setcookie ở cái param domain mình set domain ở cả 2 site tức là setcookie 2 lần :D

Nhân Tâm
29-01-2007, 16:06
Đã thử lại run -> OK rồi. thanks các bác nhiều.


thì lúc setcookie ở cái param domain mình set domain ở cả 2 site tức là setcookie 2 lần :D

Bác Kid đã làm như thế rồi hả ? :D
10 domain set 10 lần luôn :D

cái nick đó
29-01-2007, 20:33
có cách nào khác đơn giản hơn không ạ

thienthan36
29-01-2007, 20:52
dùng IP để select xem
select user,password,ip from session where ip = $ip

sau đó kiểm tra xem Ip này đã login chưa là được mà.
Nhưng nếu có nhiều người cùng login trên IP thì cần thêm một số cái nữa.
Chịu khó nghiên cứu nhé !

truongngocdai
22-03-2007, 20:48
cái này có lẽ giống Portlet

mr47
23-03-2007, 10:50
Dùng một cái image có thể setcookie :D
Cái image đó là php, khi vào site này thì gọi ở site kia. Như vậy là setcookie được. Tuy nhiên, nên có một quy định là cứ quá một nửa thời gian timeout hãy set lại để tránh tăng process, tự mình cứa cổ mình :D.

mr47
23-03-2007, 10:50
Dùng một cái image có thể setcookie :D
Cái image đó là php, khi vào site này thì gọi ở site kia. Như vậy là setcookie được. Tuy nhiên, nên có một quy định là cứ quá một nửa thời gian timeout hãy set lại để tránh tăng process, tự mình cứa cổ mình :D.

Nhân Tâm
24-03-2007, 10:53
khi vào site này thì gọi ở site kia.

Bác nói rõ hơn về việc gọi site kia có được không ?
Ý Bác là 2 site load cùng 1 lúc hả ?

terafunny
24-03-2007, 11:55
Thấy tụi Google làm cái blogger và các hệ thống khác đều được hết. Lấy ví dụ cái blogspot, nó vẫn hiện mấy cái nút điều chỉnh khi mình đăng nhập, vậy mà nó không có một cookie nào cả.

mr47
24-03-2007, 12:49
Thấy tụi Google làm cái blogger và các hệ thống khác đều được hết. Lấy ví dụ cái blogspot, nó vẫn hiện mấy cái nút điều chỉnh khi mình đăng nhập, vậy mà nó không có một cookie nào cả.
Blogger nó xài một công nghệ hoàn toàn khác PHP!

mr47
24-03-2007, 12:51
Bác nói rõ hơn về việc gọi site kia có được không ?
Ý Bác là 2 site load cùng 1 lúc hả ?

Có nghĩa là khi bạn muốn setcookie cho site a.com mà muốn site a1.com cũng có luôn thì bạn đưa xuống trình duyệt mọt đoạn HTML ví dụ:
<img src="a1.com/cookie.php" width="0" height="0" />

file cookie.php có thể tạo ra một image và lại vừa setcookie luôn cho site a1.com.
Cái này hơi bị tà đạo :(

terafunny
24-03-2007, 17:25
Blogger nó xài một công nghệ hoàn toàn khác PHP!

Đúng là "công nghệ" thế cho biết nó là công nghệ gì? Chắc là ajax, ngay ở đầu trang nó cũng có 1 cái bar có địa chỉ từ blogger, chắc cái đó để điều khiển qua cho blogspot :D

P.S: Lần sau thảo luận nhớ nói đầy đủ ra một tí, nói thế người khác cười cho đấy :D

pcdinh
24-03-2007, 18:08
Nó dùng Python. Nhiều bác quan tâm đến mấy cái công nghệ gạch đầu dòng như.

terafunny
24-03-2007, 22:50
Nó dùng Python. Nhiều bác quan tâm đến mấy cái công nghệ gạch đầu dòng như.

Vậy Python có thể hiểu được thông tin kiểu cross-domain sao???

pcdinh
24-03-2007, 23:04
Tera đừng tập đặt ra các câu hỏi chã như vậy được không? Điều đó không tốt cho chất lượng chung của box này. Nếu Tera không thực sự hiểu các kĩ thuật liên quan đến vấn đề cross-domain thì về tìm hiểu SSO chẳng hạn. SAP, Oracle và Sun đều có các giải pháp cho PHP xử lý vấn đề này. Giải pháp có tính academic thì dùng CAS. Python với Zope cũng vậy

Tuy nhiên ở cấp độ scripter thì các bạn sẽ không có khả năng gặp phải. Trên thực tế thì thường bạn sẽ gặp trong quá trình phát triển các intranet application.

terafunny
24-03-2007, 23:18
Tera đừng tập đặt ra các câu hỏi chã như vậy được không? Điều đó không tốt cho chất lượng chung của box này. Nếu Tera không thực sự hiểu các kĩ thuật liên quan đến vấn đề cross-domain thì về tìm hiểu SSO chẳng hạn. SAP, Oracle và Sun đều có các giải pháp cho PHP xử lý vấn đề này. Giải pháp có tính comm. thì dùng CAS.

Tuy nhiên ở cấp độ scripter thì các bạn sẽ không có khả năng gặp phải.

Không hiểu lắm cái chỗ không có khả năng gặp phải. Vậy nếu gặp phải thì làm thế nào?

Không biết Google làm thế mà có thể điều khiển được mà không cần phải đánh dấu cái gì trong domain kia cả. Nếu bạn biết, bạn có thể trình bày rõ hơn được không? Lâu rồi không đụng đến lập trình, thấy cập nhật quá nhiều cái mới, tìm hiểu thêm để khỏi bị lạc hậu :)

pcdinh
24-03-2007, 23:41
Tera có thể tìm hiểu về các hệ thống Access Manager. Trong các phòng mạng có quy mô Tera thường thấy các user thường logon vào một domain nào đó phải không. Sau đó user bật trang web nội bộ, user đã thấy mình đăng nhập trên trang web đó rồi. Đây là 2 platform hoàn toàn khác nhau và việc kiểm tra authentication đã được thực hiện tự động. Tera chắc đã đoán được là trên Windows người ta có thể thực hiện qua Active Directory hoặc các hệ thống LDAP cũng tương tự. Nền tảng web càng dễ làm hơn. Người ta có thể thực hiện kiểm soát truy cập và đăng nhập 1 cửa không chỉ là trên nhiều tên miền và trên các hệ thống rất khác nhau về bản chất.

Scripter sẽ rất ít gặp các vấn đề này vì các giải pháp như vậy không thể là các gói web đơn giản như cái forum VBB mà chúng ta đang dùng. Với hệ thống phần mềm doanh nghiệp, một kiến trúc chung cần được lập ra trước khi các gói phần mềm được implement theo đặc tả.

Nhân Tâm
26-03-2007, 10:41
Có nghĩa là khi bạn muốn setcookie cho site a.com mà muốn site a1.com cũng có luôn thì bạn đưa xuống trình duyệt mọt đoạn HTML ví dụ:
<img src="a1.com/cookie.php" width="0" height="0" />

file cookie.php có thể tạo ra một image và lại vừa setcookie luôn cho site a1.com.
Cái này hơi bị tà đạo :(

5 trang thì set 5 cái luôn. Uh hơi tà !


một kiến trúc chung cần được lập ra trước khi
Ý bác . Nếu xây dựng theo một mô hình kiểm tra đăng nhập giống nhau thì việc khác domain không là vấn đề phải không ?

pcdinh
26-03-2007, 15:50
Vâng, đó là điều tôi muốn nói. Vấn đề cross-domain từ lâu đã được giải quyết rồi. Như mr47 là một cách. Nhưng môi trường làm việc của doanh nghiệp còn đòi hỏi nhiều hơn thế cho nên người ta mới nghĩ đến SSO. Có thể nghĩ về SSO model như viết thiết lập 1 cơ chế Access Proxy, mà ở đó chúng ta tạm quên các sự khác biệt trong cơ chế auth để dùng một cơ chế trung gian mà các bên đều chấp nhận. Người ta có thể đưa cơ chế đó thành chuẩn như SAML chẳng hạn