2013-04-17 10 views
12

Hạn chế ứng dụng đăng nhập bằng OAuth cho một miền (giả sử abc.com). Nhận lỗi với các bước sau:Lỗi: Tham số OAuth 2 chỉ có thể có một giá trị duy nhất: hd

  1. Đã đăng nhập bằng nhiều tài khoản trong trình duyệt trên google.
  2. Khi cố gắng đăng nhập với người dùng có tên miền không được đề cập, không có gì xảy ra (không có thông báo lỗi). Cố gắng đăng nhập với người dùng không hợp lệ hai lần.
  3. Bây giờ, hãy thử đăng nhập với người dùng hợp lệ.

On làm điều đó được lỗi sau xảy ra:

OAuth 2 parameters can only have a single value: hd

Trong lỗi stack trace client id là nhìn thấy được. Đó có phải là một nguy cơ bảo mật không?

Lỗi này có thể được khắc phục như thế nào?

+0

Tôi vừa triển khai chức năng này và đang thấy cùng một thông báo khi tôi thực hiện các bước tương tự. Không phải luồng công việc rất thân thiện với người dùng –

+0

http://stackoverflow.com/questions/29694840/googles-openid-connect-says-oauth-2-parameters-can-only-have-a-single-value-c –

Trả lời

0

Theo documentation the hd parameter là dành cho G Suite, vì vậy có thể bạn đang lặp lại thông số hd, một với số hd=* và một với tên miền được lưu trữ của bạn. Cũng nói rằng bạn không nên dựa vào tối ưu hóa giao diện người dùng này để kiểm soát quyền truy cập vào ứng dụng của bạn.

In the error stack trace client id is visible. Is that a security risk?

Không có. It is not a secret. Nó được sử dụng cho mục đích gỡ lỗi.

How can this error be fixed?

Cố gắng thay thế thông số hd thay vì chỉ thêm một số mới. Nói chung, điều này nên được thực hiện với mọi thông số yêu cầu của bạn. Ngoài ra, OAuth2 documentation nêu rõ lỗi invalid_request khi bạn lặp lại tham số.