Lỗi sử dụng OAuth của google khi tạo Client ID
Em chào anh Đạt, chào mọi người
Hiện tại em đang làm 1 dự án bằng ASP.net và có sử dụng OAuth để xác minh và đăng nhập vào hệ thống. Chức năng OAuth đã hoạt động khi em chạy trên localhost nhưng khi em đưa code lên IP public và thực hiện tạo API để sử dụng thì lại không được. Bây giờ server của em chưa có domain nên em thử sử dụng địa chỉ IP để xin cấp Client ID nhưng không được. Ở đây có ai đã từng sử dụng OAuth thì cho mình tham khảo ý kiến với. Có phải Google yêu cầu địa chỉ đó phải là địa chỉ của tên Domain hay không.?
Cảm ơn mọi người =))
Anh đang dùng domain: http://daynhauhoc.com để đăng ký OAuth. Em thấy nó báo lỗi như thế nào, có thể gửi anh xem được không?
Em mới tìm hiểu về OAuth 2.0 nên chưa rõ lắm. OAuth có khác với OpenID 2.0 không ạ?
Em được biết thì thằng OpenID cũng sắp đóng cửa rồi nên cũng hơi băn khoăn
Lỗi của em gặp phải đây ạ.
Create ClientID
Error
Google không support IP chỗ redirect URL, bạn phải để domain nó mới chịu
Anh @ltd hay bạn nào có thể giúp mình hiểu về cách thức xác thực người dùng khi sử dụng OAuth được không ạ. Hiện tại em xác nhận để người dùng truy cập vào hệ thống website của em bằng cách lấy địa chỉ email của người đăng nhập sau đó kiểm tra xem trong hệ thống có địa chỉ đó không? Nếu có thì chấp nhận cho họ vào. Nhưng em nghĩ cách đó không khoa học và dở quá.
Anh đạt có thể giúp em hiểu cách anh xác minh người dùng để đăng nhập vào hệ thống của http://daynhauhoc.com được không ạ? Em cảm ơn mọi người.
Continuing the discussion from Lỗi sử dụng OAuth của google khi tạo Client ID:
Cảm ơn bạn nhé. Mình hy vọng là vậy Vì hiện tại mình chưa có domain, và mình tạo trên host của http://somee.com thì google cho tạo Client ID nhưng không sử dụng được? Lỗi 400
Anh sử dụng Open Source nên phần implement đó anh không quan tâm, anh chỉ quan tâm là anh lấy key API và secret API bỏ vào là chạy thôi. Về lĩnh vực này thì phải nhờ chuyên gia như các nhân vật @dangh, @laptrinhio, @tuanitpro
P/S: Có @ dư hay thiếu gì thì bỏ quá cho nhé.
Cơ bản sẽ là thế này:
Hầu hết các dịch vụ đều làm theo cách số 1 vì khi họ thay đổi thì có thông báo là yêu cầu họ đọc và xác nhận điều khoản abc … vì họ không đăng kí bằng email nên phải có cách nào đó là đảm bảo có cho họ biết cái này (pháp lý). Còn dịch vụ ko liên quan pháp lý hay nặng nề cái này thì làm theo cách 2 cũng được.
Trường hợp của bạn là authentication, và làm đúng theo guide của Google rồi
https://developers.google.com/accounts/docs/OpenIDConnect#authuser
Với hệ thống của mình thì lại thế này. Mình chỉ cho phép Email có trong hệ thống được quyền đăng nhập vào bằng các mình lấy được thông tin đó từ google và kiểm tra. Nhưng vấn đề mình gặp phải hiện tại đó là:
@laptrinhio
Bạn xem có bị trường hợp giống này không
http://stackoverflow.com/questions/10508557/why-does-google-oauth2-re-ask-user-for-permission-when-i-send-them-to-auth-url-a
Bạn bị lỗi 400 ở chỗ nào, cho mình xem cái URL được không
Update: Cái vụ không dùng được IP để redirect thì trên SO rất nhiều người cũng bảo vậy. Mình không tìm thấy lý do nhưng mình đoán cái này là tại vì một IP có thể có nhiều domain cùng trỏ về (shared hosting chẳng hạn) nên nếu redirect về IP thì sẽ không chính xác. Để hạn chế lỗi thì Google không cho dùng thôi
Kinh nghiệm cá nhân trước thì ko sử dụng IP bao giờ, và chỉ dùng domain name.
Tạo ra hai môi trường khác nhau : DEVELOPMENT và PRODUCTION, mỗi môi trường sử dụng 1 key khác nhau để cấu hình, chứ không dùng chung như của bạn thế kia.
Có lẽ mình chưa hiểu rõ vể OAuth nên chưa biết, bạn có thể nói rõ cho mình hiểu về việc tạo ra 2 môi trường khác nhau như bạn đề cập được không? Và tại sao lại phải sử dụng nhiều key như vậy để làm gi?