2010-08-25 57 views
6

Khi người dùng cố gắng truy cập trang web của chúng tôi thông qua liên kết (ví dụ: www.website.com/privatepage), họ sẽ được chuyển hướng đến trang đăng nhập. Khi họ đăng nhập, chúng tôi muốn chuyển hướng họ đến URL dự định đó - làm cách nào bạn thực hiện việc này? Ngoài ra, chúng tôi có trường hợp sử dụng khi người dùng đăng nhập từ trang chủ hoặc truy cập trực tiếp vào trang đăng nhập không có URL dự định - trong trường hợp này, chúng tôi muốn chuyển hướng họ đến trang mặc định.Chuyển hướng URL dự định + chuyển hướng mặc định sau khi đăng nhập?

Có ai có thể giúp tôi tìm ra điều này không?

+0

Bạn có thể đã cụ thể hơn bằng cách nói chnology bạn đang sử dụng. Nhưng điều cơ bản là gửi url của trang đó khi bạn đang chuyển hướng người dùng đăng nhập. Bằng cách này bạn có thể có url cuối cùng và sau khi chuyển hướng đăng nhập thành công vào nó. Đọc một số điều về request.referer để biết thêm chi tiết. – AMIT

+0

Vâng, như Amit đã nói, chúng tôi không thể giúp quá nhiều mà không biết các phương pháp bạn đang sử dụng. Câu trả lời của tôi chỉ là một trợ giúp chung. – palswim

Trả lời

4

Chúng được chuyển hướng đến trang đăng nhập như thế nào? Cho dù bạn sử dụng phương pháp nào, bạn có thể thêm biến GET vào cuối URL trang đăng nhập và sau đó tham chiếu biến đó trên trang đăng nhập.

Vì vậy, người dùng muốn truy cập www.example.com/privatepage, nhưng trước tiên bạn cần họ đăng nhập tại www.example.com/login. Chuyển hướng họ đến www.example.com/login?targetpage=/privatepage, sau đó trong mã cho trang đăng nhập của bạn, bạn có thể truy cập biến số targetpage.

3

Tôi thường lưu trữ trang trong phiên PHP trước khi tôi chuyển hướng đến trang đăng nhập. Sau khi đăng nhập, xem liệu giá trị phiên có được đặt hay không, nếu giá trị đó được chuyển hướng trở lại trang đó.

5

Có thể là một ý tưởng hay để có danh sách trắng các url được chấp nhận khi chuyển hướng theo cách này - nếu không, kẻ tấn công có thể gửi cho ai đó liên kết như example.com/login?attacker.com/fake_examplecom và người dùng sẽ được chuyển hướng trang web của kẻ tấn công trong khi nghĩ rằng họ vừa đăng nhập vào trang web của bạn. Url ban đầu được trỏ đến trang web của bạn, vì vậy có vẻ đáng tin cậy. Có rất nhiều điều khó chịu có thể được thực hiện với điều này, như bạn có thể tưởng tượng.

6

trong trang đăng nhập của bạn:

nếu bạn đi đến www.example.com/private_page

sử dụng CodeIgniter (trên trang tin)

// if user is not logged in... 
$_SESSION['redirect'] = $this->uri->segment(1); 
redirect('login'); 

trên trang đăng nhập

// successfully logged in.. 
if (isset($_SESSION['redirect'])) { 
    redirect($_SESSION['redirect']); 
} else { 
    // redirect to default page 
} 
Các vấn đề liên quan