Tìm kiếm giải thích tốt về cách thực hiện xác thực bằng cách sử dụng akka HTTP. Với một con đường mà trông giống nhưCách xác thực bằng cách sử dụng Akka HTTP
val route =
path("account") {
authenticateBasic(realm = "some realm", myAuthenticator) { user =>
get {
encodeResponseWith(Deflate) {
complete {
//do something here
}
}
}
}
}
The documentation vạch ra một con đường, nhưng sau đó phần liên hệ thực hiện thẩm định thực tế được bỏ qua ...
// backend entry points
def myAuthenticator: Authenticator[User] = ???
Tôi có thể tìm thấy một thực hiện ví dụ về xác thực như vậy đâu ? Tôi đã có logic để xác thực một người dùng được cung cấp một tên người dùng và mật khẩu, nhưng những gì tôi không thể tìm ra là làm thế nào để có được một tên người dùng/mật khẩu (hoặc mã thông báo có chứa cả hai) từ yêu cầu HTTP (hoặc RequestContext).
này là làm cho ý nghĩa hơn, nhưng tôi không hiểu dòng 'nếu (p.verifySecret (myGetSecret (username))' Bất kỳ cơ hội bạn có thể giải thích một chút về các cuộc gọi bí mật? – mattmar10
@ user1551604 ' myGetSecret' là chức năng tùy chỉnh của bạn nhận 'username' và trả về bí mật của bạn (vd: password), lấy nó từ database.' verifySecret' sẽ so sánh an toàn (để tránh tấn công thời gian) cung cấp mật khẩu với mật khẩu của bạn từ myGetSecret – dk14
cảm ơn bạn đã thêm Nó có ích gì một chút, vì vậy tham số trong hàm 'myGetSecret' là gì? Tôi đoán nó chỉ là một chuỗi? Nó sẽ trả về cái gì? Tôi có mật khẩu cho người dùng được lưu trữ (dạng băm sử dụng BCrypt). nó có phải là mật khẩu chưa được rửa không? – mattmar10