Chúng tôi đang sử dụng lớp OAuthAuthorizationServerProvider
để thực hiện ủy quyền trong ứng dụng ASP.NET Web Api của chúng tôi.Cách tùy chỉnh thông báo lỗi của OAuthAuthorizationServerProvider?
Nếu tên người dùng và mật khẩu được cung cấp là không hợp lệ trong GrantResourceOwnerCredentials
, cuộc gọi
context.SetError("invalid_grant", "The user name or password is incorrect.");
Tạo kết quả Json sau:
{
"error": "invalid_grant",
"error_description": "The user name or password is incorrect."
}
Có cách nào để tùy chỉnh kết quả lỗi này?
Tôi muốn làm cho nó phù hợp với định dạng thông báo lỗi mặc định được sử dụng trong các bộ phận khác của API:
{
"message": "Some error occurred."
}
Đây có phải là có thể đạt được với OAuthAuthorizationServerProvider
?
Trong khi các câu trả lời dưới đây chứng minh làm thế nào để làm được điều này, tôi sẽ thận trọng đối với việc này, như phản ứng mặc định trở lại phù hợp với những đặc điểm kỹ thuật OAuth 2.0, trong khi phản ứng biến đổi của bạn sẽ không . Điều này có thể chấp nhận được đối với các API chỉ dành cho nội bộ. Tuy nhiên, nếu API này có thể truy cập công khai, bạn có thể muốn tuân theo đặc điểm kỹ thuật và không phát minh ra các quy ước mới. – Chris
Tôi thấy rằng những câu trả lời này không hoạt động và có vẻ như phản hồi OAuth trông giống một phản hồi API Web chuẩn không dễ như người ta nghĩ. – Sam