Làm thế nào để tạo code mã hóa gửi tới các user khi muốn đổi mật khẩu?

Tình hình là em muốn thêm chức năng khi người dùng muốn đổi mật khẩu thì sẽ gửi qua email một đường link để đổi mk. Với 2 biến truyền là email=tenemail&code=ncbhdhcgh gì đó.

  • Điều kiện là tenemail phải tồn tại thì dễ r. Và phải xác nhận mã code đã được sử dụng chưa.
    => Cái e đang vướng là sẽ “tạo ra chuỗi code mã hóa” với loại mã hóa nào sẽ an toàn và trong database sẽ phải tạo thêm 1 table ghi nhận lại các mã code hay sao m.n ơi, giúp e với! T_T
1 Like

Chi mà phức tạp vậy nè. Đơn giản là bạn sinh ra một mã ngẫu nhiên có độ dài cũng nên ngẫu nhiên luôn (dài từ 10 đến 15 ký tự chẳng hạn). Sau đó ghi nó vào cơ sở dữ liệu & gửi email cái link có kèm mã đó (sau khi đã tìm kiếm trong CSDL xem liệu có vô tình có một mã như vậy còn nằm trong đó không), kèm với một cột ngày giờ hết hạn (kể từ lúc người dùng muốn reset mật khẩu - 24 hoặc 48 tiếng gì đó), khi người dùng click vào link thì tìm lại trong CSDL có khớp email và mã đó không, có còn trong thời hạn 24-48 tiếng không, nếu khớp thì hiển thị cửa sổ cho đặt mật khẩu mới và xóa mã đó trong CSDL để tránh dùng lại thêm lần nào nữa. Nếu không khớp thì thông báo link đã hết hạn, cần điền email để lấy lại link khác. Như vậy, trong một thời điểm, trong CDSL của bạn có chưa tới 20 mã như vậy, vì số người quên mật khẩu tại một thời điểm không nhiều đâu, có gì mà phải lo lắng.

Tạo mã random thì code đầy trên mạng, ví dụ ở đây có hàm nè.

5 Likes


trong này có 1 cái example nói về reset password này , flow thì như bạn trên nói đó…

2 Likes

Xem qua API của Face book ý

1 Like

Cám ơn “Vô Thin” nhiều nha. Mình tìm được hướng có thể giải quyết ok r. Thanks nhiều nhiều luôn. :smiley:

Quào. :smiley:. thanks bạn nha

ok mình tìm được hướng giải quyết ok r. Thanks “Cong 5” nhiều nha :smiley:

Nhớ là khi người dùng đã reset mật khẩu thì xóa các mã ngẫu nhiên kia khỏi table cho nó nhẹ và không ai có thể dùng lại lần 2, để tránh tiềm ẩn rủi ro kiểu brute force gì đó.

2 Likes

Mỗi web làm thêm xí xí, h càng làm càng đào sâu vào bảo mật. Lòi ra quá trời cái ngoài hành tinh mới biết. =))

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?