tôi đang cố gắng để xác thực người dùng bằng cách sử dụng phương pháp Auth::attempt()
và nó tiếp tục thất bại, vì vậy tôi cuối cùng đã kết thúc với đoạn mã sau:Laravel 4 - Băm cùng một mật khẩu cho các giá trị khác nhau
$arr = array();
$arr['verified'] = Hash::make('1234') . ' ; ' . Hash::make('1234');
return json_encode($arr);
và đây là kết quả :
{"verified":"$2y$10$V4yXBUcxealfLrzOE\/xAD.sJ8qpNhrMA6K6dENBBXYqaVx1zSETgy ; $2y$10$C9xpOWLTUyfy1KL.Y3Tot.KWADmQYFK\/HAf6uZGGXTKcVh52qHS4m"}
Như bạn có thể thấy, băm đầu tiên mang đến cho $2y$10$V4yXBUcxealfLrzOE\/xAD.sJ8qpNhrMA6K6dENBBXYqaVx1zSETgy
và băm thứ hai mang đến cho $2y$10$C9xpOWLTUyfy1KL.Y3Tot.KWADmQYFK\/HAf6uZGGXTKcVh52qHS4m
T anh ta không có gì để làm với cơ sở dữ liệu mặc dù khi lưu trữ, tôi có một trường mật khẩu 60 ký tự.
Bất kỳ ý tưởng nào?
Nhưng tôi cần lưu trữ mật khẩu băm trong cơ sở dữ liệu, làm cách nào để so sánh với mật khẩu đó? vì mật khẩu sẽ không phải lúc nào cũng là '1234'. Và làm thế nào tôi có thể sử dụng phương pháp này với phương thức 'Auth :: try()'? –
@ user3723418 - Muối ngẫu nhiên sẽ trở thành một phần của giá trị băm kết quả, muối này được trích xuất từ giá trị băm được lưu trữ để xác minh mật khẩu đã nhập, chỉ cần sử dụng 'Hash :: check()' nó sẽ tự động cho bạn. – martinstoeckli
@ user3723418 sử dụng phương thức Auth :: try() thậm chí còn dễ dàng hơn. Ngay sau khi bạn có muối băm trong cơ sở dữ liệu của bạn (đúng thiết kế db giả định) laravel sẽ tự động kiểm tra đầu vào dựa vào các trường trong cơ sở dữ liệu của bạn. Nếu có một trường mật khẩu trong db và một khóa mật khẩu trong mảng của bạn, bạn chuyển sang phương thức 'Auth :: try()' laravel sẽ tự động kiểm tra lại hai giá trị này để xem xét băm và sau đó thực hiện xử lý phiên. – thpl