Tôi muốn chuyển mã thông báo truy cập trong tiêu đề xác thực cho API mà tôi đang tạo (đang tìm hiểu) và tôi đã đọc rằng tiêu đề ủy quyền phải có giá trị là 'Bearer aTokenStringHere' Show
Cách tốt nhất để lấy giá trị tiêu đề này và phân tích cú pháp nó là gì, có phải chỉ là trường hợp lấy tiêu đề Ủy quyền từ mẫu yêu cầu và sau đó loại bỏ phần Bearer của chuỗi?
Ngoài ra, bạn có thể giải thích lý do tại sao chúng tôi phải sử dụng Bearer như một phần của giá trị cho tiêu đề Ủy quyền không?
Thanks
Liên kết để bình luậnChia sẻ trên các trang web khácNhiều tùy chọn chia sẻ hơn requinixĐăng ngày 20 tháng 1 năm 2017 requinix
Đăng ngày 20 tháng 1 năm 2017 Lấy nó từ tiêu đề HTTP_AUTHORIZATION trong $_SERVER, sau đó thực hiện các thao tác chuỗi thô sơ trên đó if (isset($_SERVER["HTTP_AUTHORIZATION"])) { list($type, $data) = explode(" ", $_SERVER["HTTP_AUTHORIZATION"], 2); if (strcasecmp($type, "Bearer") == 0) { // use $data } else { // ??? } } else { // ??? }Bearer là một phương pháp ủy quyền chưa chính thức mà mọi người đã tạo ra trước đây vì Basic và Digest không hoạt động đủ tốt. Điều đó chỉ có nghĩa là bất kỳ mã thông báo nào xuất hiện sau đó đều là một số mã đặc biệt mà máy chủ sẽ nhận dạng để xác thực - điều thực sự xảy ra với mã đó là tùy thuộc vào bạn
Liên kết để bình luậnChia sẻ trên các trang web khácNhiều tùy chọn chia sẻ hơn mds1256Đăng ngày 20 tháng 1 năm 2017 mds1256
Đăng ngày 20 tháng 1 năm 2017
À, tôi hiểu rồi - cảm ơn vì điều này nó làm cho nó rất rõ ràng
Tôi biết cách tốt nhất là sử dụng tiêu đề đã tồn tại này nhưng có lý do nào khiến tôi không thể tạo tiêu đề của riêng mình và sử dụng các tiêu đề này, e. g. access_token và refresh_token?
Trên một lưu ý hơi khác
Nhìn vào Oauth dường như có id ứng dụng khách và bí mật ứng dụng khách được chuyển vào tiêu đề ủy quyền http và sau đó mã thông báo truy cập/làm mới được chuyển vào nội dung bài đăng - lợi thế của việc có id ứng dụng khách và bí mật cũng như
Đây có phải là trường hợp kiểm soát 'ứng dụng' nào có thể sử dụng điểm cuối không?
Liên kết để bình luậnChia sẻ trên các trang web khácNhiều tùy chọn chia sẻ hơn Jacques1Đăng ngày 20 tháng 1 năm 2017 Jacques1
Đăng ngày 20 tháng 1 năm 2017 (đã chỉnh sửa)
Không có gì ngăn cản bạn tạo các tiêu đề tùy chỉnh, miễn là chúng không xung đột với các tiêu đề hiện có. Việc phát minh ra giao thức của riêng bạn có hợp lý hay không lại là một câu chuyện khác
Bạn hiểu lầm rồi. Thông tin đăng nhập của khách hàng được trao đổi để lấy mã thông báo truy cập. Bạn gửi thông tin đăng nhập, bạn nhận được mã thông báo. Việc chuyển mã thông báo truy cập trong “nội dung POST” thậm chí không có ý nghĩa gì, bởi vì nó ngụ ý rằng mọi yêu cầu đơn lẻ phải là một yêu cầu POST (còn GET thì sao?)
Dù sao đi nữa, tôi nghĩ chúng ta đã thảo luận rất chi tiết về vấn đề này, nhưng dường như không có nhiều tiến triển. Có lẽ sẽ hợp lý hơn nếu bạn ngồi xuống, xác định mục tiêu của mình và sau đó chọn cách thực hiện phù hợp. Nếu bạn ngẫu nhiên xem qua các giao thức và biến thể khác nhau, điều đó chỉ dẫn đến nhiều nhầm lẫn hơn Đã chỉnh sửa ngày 20 tháng 1 năm 2017 bởi Jacques1
Liên kết để bình luậnChia sẻ trên các trang web khácNhiều tùy chọn chia sẻ hơn mds1256Đăng ngày 20 tháng 1 năm 2017 mds1256
Đăng ngày 20 tháng 1 năm 2017
Được rồi, máy chủ OAuth2 thử nghiệm mà tôi đã tạo phải có các thông tin sau được cung cấp để cung cấp mã thông báo truy cập
1. tiêu đề - Grant_type = mật khẩu 2. tiêu đề - tên người dùng 3. tiêu đề - mật khẩu 4. Tiêu đề ủy quyền - id khách hàng. bí mật khách hàng
nếu không nó sẽ không cấp mã thông báo truy cập
Vì vậy, điều tôi bối rối là tại sao bạn cần cung cấp tên người dùng và mật khẩu cũng như id khách hàng và bí mật khách hàng?
Liên kết để bình luậnChia sẻ trên các trang web khácNhiều tùy chọn chia sẻ hơn Jacques1Đăng ngày 20 tháng 1 năm 2017 Jacques1
Đăng ngày 20 tháng 1 năm 2017 Vì OAuth phân biệt giữa ứng dụng khách (ứng dụng) và chủ sở hữu tài nguyên (e. g. một người sử dụng con người). Thông tin đăng nhập của khách hàng xác thực ứng dụng khách, tên người dùng/mật khẩu xác thực người dùng. Xác thực ứng dụng khách không phải lúc nào cũng được yêu cầu theo giao thức, nhưng biến thể cụ thể mà bạn đã chọn hoặc quá trình triển khai vẫn có thể thực thi nó
Nhưng sau đó một lần nữa. Hoàn toàn không rõ bạn đang cố gắng đạt được điều gì. Trong các chủ đề trước của bạn, ít nhiều bạn muốn loại bỏ hoàn toàn mật khẩu. Bây giờ có vẻ như bạn chỉ muốn xác thực bằng mật khẩu, điều này sẽ khiến toàn bộ giao thức OAuth trở nên vô dụng
Quên về những thứ kỹ thuật bây giờ. Mục tiêu của bạn là gì?
Liên kết để bình luậnChia sẻ trên các trang web khácNhiều tùy chọn chia sẻ hơn mds1256Đăng ngày 20 tháng 1 năm 2017 mds1256
Đăng ngày 20 tháng 1 năm 2017
Điều đó có ý nghĩa - vì vậy bạn có thể cấm ứng dụng khách nhưng vẫn cho phép người dùng - ví dụ: bạn phát hành hai ứng dụng có thể xác thực bằng cách sử dụng cùng một chi tiết người dùng nhưng sau đó bạn gỡ bỏ một trong các ứng dụng để sau đó bạn xóa id ứng dụng đó khỏi danh sách được phép
Mục tiêu là tạo một ứng dụng dành cho thiết bị di động xác thực bằng mặt sau để sử dụng mã thông báo - trước tiên người dùng đăng nhập vào ứng dụng dành cho thiết bị di động bằng tên người dùng và mật khẩu sẽ gửi yêu cầu mã thông báo - máy chủ sẽ phản hồi bằng mã thông báo nếu
Phần tôi đang gặp khó khăn là tại sao tôi cần id ứng dụng khách và bí mật cũng như tên người dùng và mật khẩu - nhưng tôi đoán nếu tôi muốn kiểm soát quyền truy cập ứng dụng khách cũng như quyền truy cập của người dùng thì đây là lý do tại sao tôi cần cả hai. Bạn có thể xác nhận rằng suy nghĩ này là chính xác? Làm cách nào tôi có thể nhận Mã thông báo Bearer trong PHP?Để gửi yêu cầu GET với tiêu đề ủy quyền Mã thông báo mang bằng PHP, bạn cần phải thực hiện yêu cầu HTTP GET và cung cấp Mã thông báo gửi của bạn với Ủy quyền. Tiêu đề HTTP {token} của người mang .
Làm cách nào tôi có thể tự động nhận Bearer Token?Người đưa thư tự động . Thẻ ủy quyền. Trong Tab ủy quyền, hãy đặt Loại thành Mã thông báo mang và đối với giá trị của Mã thông báo, hãy đặt biến của bạn, tôi đã sử dụng {{BEARERTOKEN}} Thẻ tập lệnh yêu cầu trước. Trong Tab Tập lệnh yêu cầu trước, đây là nơi điều kỳ diệu xảy ra. . Yêu cầu thiết lập Làm cách nào tôi có thể nhận được OAuth 2. 0 Mã thông báo mang?Lấy OAuth 2. 0 thông tin xác thực từ Google API Console Nhận mã thông báo truy cập từ Máy chủ ủy quyền của Google Kiểm tra phạm vi truy cập được cấp bởi người dùng Gửi mã thông báo truy cập tới API Làm mới mã thông báo truy cập, nếu cần Làm cách nào tôi có thể nhận Bearer Token cho tài khoản dịch vụ?Để nhận mã thông báo Bearer bằng tài khoản dịch vụ của bạn, hãy làm theo các bước sau. . Cài đặt công cụ dòng lệnh gcloud Xác thực tài khoản dịch vụ của bạn. Trong lệnh sau, thay thế ${KEY_FILE} bằng đường dẫn đến tệp khóa tài khoản dịch vụ của bạn. . Sử dụng tài khoản dịch vụ của bạn để nhận mã thông báo ủy quyền |