Tích hợp OAuth2
Cơ chế xác thực OAuth2 cho phép người dùng cuối tự động phân quyền cho Nhà Phát Triển truy cập thông tin tài khoản của họ trên Casso.
Lưu ý: Access token nhận được từ xác thức OAuth 2.0 của Casso chỉ hỗ trợ ở v2.
Trước khi bắt đầu
Trước khi bắt đầu sử dụng Oauth2 của Casso, bạn cần phải:
Có một tài khoản Casso.
Đăng ký một ứng dụng liên kết với tài khoản developer của bạn.
Cách hoạt động
Casso hỗ trợ Oauth 2.0 Authorization Code grant type, được chia thành 4 bước cơ bản như sau:
Ứng dụng của bạn sẽ mở một cửa sổ trình duyệt để đưa người dùng đến Casso OAuth2.
Người dùng xem xét các quyền được yêu cầu và cấp quyền truy cập ứng dụng.
Người dùng được chuyển hướng trở lại ứng dụng với mã ủy quyền(authorization code) trong chuỗi truy vấn(query params).
Ứng dụng gửi yêu cầu đến Casso OAuth2 để trao đổi mã ủy quyền(authorization code) để lấy
access token
.
Hướng dẫn
Lấy OAuth2 token: Cách ủy quyền ứng dụng của bạn với người dùng.
Sử dụng OAuth2 token: Cách thực hiện một truy vấn với token.
Lấy lại OAuth2 token: Cách sử dụng refresh token do Casso cung cấp.
Lấy OAuth2 token
Bước 1: Tạo một authorization URL và hướng người dùng đến Oauth2 của Casso.
Khi một người dùng truy vấn tới hệ thống Oauth2 của Casso, đầu tiên sẽ phải tạo một authorization URL. Điều này sẽ xác định ứng dụng và phạm vi tài nguyên mà ứng dụng yêu cầu quyền truy cập thay cho người dùng. Các tham số truy vấn bạn có thể truyền như một phần của authorization URL được hiển thị ở dưới.
Tham số
Bắt buộc
Mô tả
Ví dụ
client_id
Có
Client ID dùng để xác định ứng dụng của bạn.
84be6ce9-6610-42d5-9cf1-acd85a5574cb
scope
Có
Các phạm vi ứng dụng của bạn đang yêu cầu, được phân tách bằng dấu cách được mã hóa URL.
webhook%20transaction
redirect_uri
Có
URL mà người dùng sẽ được chuyển hướng đến sau khi họ ủy quyền cho ứng dụng của bạn trong các phạm vi được yêu cầu. Đối với các ứng dụng sản xuất, https là bắt buộc.
https://www.example.com/auth-callback
response_type
Có
Loại phản hồi
code
state
Không
Đây là thông số khi bạn gửi lên như nào thì lúc bạn nhận authorization code thì nó vẫn như vậy.
84be6ce9661042d59cf
Khi bạn đã tạo xong authorization URL của mình, hãy bắt đầu tiến trình OAuth2 bằng cách đưa người dùng đến URL đó.
Ví dụ
Sử dụng một server-side redirect:
Sử dụng đương dẫn HTML:
Bước 2: Casso nhắc nhở người dùng chấp thuận
Casso hiển thị cửa sổ cho người dùng đồng ý, hiển thị tên ứng dụng của bạn và mô tả ngắn gọn về các dịch vụ API của Casso mà họ đang yêu cầu quyền truy cập. Sau đó, người dùng có thể cấp quyền truy cập doanh nghiệp của họ cho ứng dụng của bạn.
Ứng dụng của bạn không thực hiện bất kỳ điều gì ở giai đoạn này. Sau khi quyền truy cập được người dùng cấp, Casso OAuth2 sẽ gửi kết quả đến Callback URL
được xác định trong authorization URL.
Bước 3: Xử lý phản hồi của OAuth2
Khi người dùng đã hoàn tất lời nhắc đồng ý từ Bước 2, OAuth 2.0 server sẽ gửi yêu cầu GET tới redirect URI được chỉ định trong authorization URL của bạn. Nếu không có vấn đề gì và người dùng chấp thuận yêu cầu truy cập, yêu cầu tới redirect URI sẽ được trả về với tham số truy vấn mã được đính kèm. Nếu người dùng không cấp quyền truy cập, sẽ gửi một yêu cầu lỗi về redirect URI.
Ví dụ:
Bước 4: Trao đổi authorization code để lấy token
Sau khi ứng dụng của bạn nhận được authorization code từ OAuth server, ứng dụng có thể trao đổi mã đó để lấy access token và refresh token bằng cách gửi yêu cầu POST URL-form encoded tới https://oauth.casso.vn/auth/token
với các giá trị được hiển thị bên dưới. Cung cấp base64 của client_id:client_secret dưới dạng basic token
trong Authorization HTTP Header.
Tham số
Mô tả
Ví dụ
grant_type
Bắt buộc làauthorization_code
authorization_code
client_id
Client ID của ứng dụng của bạn
84be6ce9-6610-42d5-9cf1-acd85a5574cb
client_secret
Client secret của ứng dụng của bạn
58dfc671-c650-457f-8a24-3d57bdeab5ac
redirect_uri
Chuyển hướng tới URI này khi người dùng ủy quyền cho ứng dụng của bạn
https://www.example.com/auth-callback
code
Authorization code nhận được từ Oauth2 server
6be34af7-6699-41cb-9c41-e02c635bd354
Ví dụ:
Nội dung của phản hồi mã thông báo sẽ là dữ liệu JSON có dạng:
Note: Access token sẽ hết hạn sau số giây được cung cấp trong trường expires_in của phản hồi (sáu giờ). Để biết thông tin về cách nhận access token mới, hãy xem Lấy lại Oauth2 token.
Sử dụng OAuth2 token
Sau khi hoàn tất quy trình authorization code, ứng dụng của bạn được ủy quyền thay người dùng gửi request. Để thực hiện việc này, cung cấp access token dưới dạng bearer token trong Authorization HTTP Header.
Ví dụ:
Lấy lại OAuth 2 token
OAuth access token hết hạn định kỳ. Điều này nhằm đảm bảo rằng nếu chúng bị xâm nhập, những kẻ tấn công sẽ chỉ có quyền truy cập trong một thời gian ngắn. Tuổi thọ của access token (sáu giờ theo mặc định) được chỉ định trong trường expires_in
khi authorization code
được trao đổi lấy access token.
Ứng dụng của bạn có thể trao đổi refresh token
đã nhận để lấy access token
mới bằng cách gửi yêu cầu POST URL-form encoded tới https://oauth.casso.com/auth/token
với các giá trị bên dưới. Cung cấp base64 của client_id:client_secret dưới dạng basic token trong Authorization HTTP Header.
Tham số
Mô tả
Ví dụ
grant_type
Phải là refresh_token
refresh_token
client_id
Client ID của ứng dụng của bạn
84be6ce9-6610-42d5-9cf1-acd85a5574cb
client_secret
Client secret của ứng dụng của bạn
58dfc671-c650-457f-8a24-3d57bdeab5ac
redirect_uri
Chuyển hướng tới URI này khi người dùng ủy quyền cho ứng dụng của bạn
https://www.example.com/auth-callback
refresh_token
Refresh token nhận được khi người dùng ủy quyền cho ứng dụng của bạn
6be34af7-6699-41cb-9c41-e02c635bd354
Ví dụ:
Nội dung của phản hồi mã thông báo sẽ là dữ liệu JSON có dạng:
Access token
mới có thể được sử dụng để thực hiện request thay cho người dùng. Khi access token
mới hết hạn, bạn có thể thực hiện lại các bước tương tự để lấy mã mới.
Refresh token không có thời gian hết hạn. Mỗi lần access token
hết hạn, bạn thực hiện lại các bước tương tự với refresh token để lấy mã mới.
Last updated