Làm cách nào để chuyển tiêu đề cấp phép bằng cURL? (Không phải phần mở rộng cURL PHP, tệp thực thi trong /usr/bin/curl
).Cách đặt tiêu đề ủy quyền bằng cách sử dụng curl
Trả lời
http://curl.haxx.se/docs/httpscripting.html
Xem phần 6. Xác thực HTTP
HTTP Authentication
HTTP Authentication là khả năng bảo với máy chủ tên người dùng và mật khẩu để nó có thể xác minh rằng bạn đang được phép thực hiện yêu cầu bạn đang thực hiện . Việc xác thực cơ bản được sử dụng trong HTTP (đó là loại curl sử dụng bởi mặc định) là đồng bằngvăn bản dựa, có nghĩa là nó sẽ gửi tên truy cập và mật khẩu chỉ hơi rối loạn, nhưng vẫn hoàn toàn có thể đọc được bởi bất cứ ai nào ngửi trên mạng giữa bạn và máy chủ từ xa.
Để nói curl để sử dụng người dùng và mật khẩu để xác thực:
curl --user name:password http://www.example.com
Các trang web có thể yêu cầu một phương pháp xác thực khác nhau (kiểm tra các tiêu đề trả về bởi máy chủ), và sau đó --ntlm, - thông báo, --negotiate hoặc thậm chí --anyauth có thể là các tùy chọn phù hợp với bạn.
Đôi khi quyền truy cập HTTP của bạn chỉ khả dụng thông qua việc sử dụng proxy HTTP . Điều này dường như đặc biệt phổ biến ở các công ty khác nhau. Một proxy HTTP có thể yêu cầu người dùng và mật khẩu riêng để cho phép khách hàng truy cập vào Internet. Để xác định những người có curl, chạy cái gì đó như:
curl --proxy-user proxyuser:proxypassword curl.haxx.se
Nếu proxy của bạn yêu cầu xác thực để được thực hiện bằng cách sử dụng phương pháp NTLM, sử dụng --proxy-NTLM, nếu nó đòi hỏi Digest sử dụng --proxy-tiêu hóa.
Nếu bạn sử dụng bất kỳ tùy chọn nào của người dùng + mật khẩu này nhưng bỏ mật khẩu một phần, curl sẽ nhắc mật khẩu tương tác.
Lưu ý rằng khi chương trình được chạy, các thông số của chương trình có thể xem được khi liệt kê các quy trình đang chạy của hệ thống. Do đó, những người dùng khác có thể là có thể xem mật khẩu của bạn nếu bạn chuyển cho họ dưới dạng dòng lệnh đơn giản . Có nhiều cách để phá vỡ điều này. Cần lưu ý rằng mặc dù đây là cách xác thực HTTP hoạt động, rất nhiều trang web sẽ không sử dụng khái niệm này khi chúng cung cấp thông tin đăng nhập, v.v. Xem chương Đăng nhập web bên dưới để biết thêm chi tiết về điều đó.
Chỉ cần thêm, do đó bạn không cần phải bấm qua:
curl --user name:password http://www.example.com
hoặc nếu bạn đang cố gắng làm gửi xác thực cho OAuth 2:
curl -H "Authorization: OAuth <ACCESS_TOKEN>" http://www.example.com
Nhiều API hiện sử dụng mã thông báo ủy quyền tiêu đề. Tùy chọn '-H' rất tuyệt. – eliocs
Nếu bạn sử dụng -u hoặc --user, Curl sẽ mã hóa thông tin đăng nhập vào Base64 và tạo tiêu đề như sau: '-H Ủy quyền: Cơ bản
Hãy cẩn thận rằng khi bạn sử dụng: curl -H "Authorization: token_str" http://www.example.com
token_str
và Authorization
phải được tách riêng bởi không gian trắng, nếu không phía máy chủ sẽ không nhận được môi trường HTTP_AUTHORIZATION
.
Không đúng, nếu cần khoảng trắng, máy chủ HTTP của bạn là bị hỏng. Ngoài ra, bạn cần hai chuỗi một loại và sau đó là mã thông báo. –
(dành cho những ai đang tìm kiếm php-curl câu trả lời)
$service_url = 'https://example.com/something/something.json';
$curl = curl_init($service_url);
curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($curl, CURLOPT_USERPWD, "username:password"); //Your credentials goes here
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $curl_post_data);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); //IMP if the url has https and you don't want to verify source certificate
$curl_response = curl_exec($curl);
$response = json_decode($curl_response);
curl_close($curl);
var_dump($response);
Bearer thẻ giống như thế này:
curl -H "Authorization: Bearer <ACCESS_TOKEN>" http://www.example.com
@esqew - Huh? Tôi đã có cùng một câu hỏi và câu trả lời này cho tôi. –
Và nếu bạn đang muốn thực hiện ủy quyền 'Cơ bản', chỉ cần hoán đổi 'Vòng' cho 'Cơ bản' –
này đã làm việc cho tôi:
curl -H "Authorization: Token xxxxxxxxxxxxxx" https://www.example.com/
Đối với HTTP Basic Auth :
curl -H "Authorization: Basic <_your_token_>" http://www.example.com
thay thế _your_token_
và URL.
Khi sử dụng oauth, mã thông báo Ủy quyền sẽ xuất phát từ đâu? Tôi đang cố gắng sử dụng curl để tải các tập tin từ một trang web mà tôi sử dụng một người dùng và mật khẩu nhưng nó có vẻ là không do oauth2 sử dụng. – toasteez
@toasteez bạn phải đi qua luồng Oauth2 để nhận mã thông báo. Thông thường nó là một quá trình hai bước và nên được chi tiết trong tài liệu của máy chủ. – Devaroop
câu trả lời hay. một người trợ giúp nhỏ 'echo -ne"
- 1. Ủy quyền tiêu đề jQuery AJAX
- 2. Ủy quyền kiểm tra bằng cách sử dụng Global.asax
- 3. Làm cách nào để đặt tiêu đề bằng cách sử dụng urllib của python?
- 4. Tiêu đề ủy quyền trong Ruby on Rails được truy cập bằng khóa HTTP_AUTHORIZATION thay vì Ủy quyền?
- 5. Đặt tiêu đề trang bằng cách sử dụng PHP
- 6. cUrl đặt tiêu đề ngôn ngữ
- 7. cách gọi dịch vụ web bằng cách sử dụng lược đồ ủy quyền NTLM?
- 8. Gửi tiêu đề ủy quyền với jquery và ajax
- 9. Tiêu đề Apache 2.4 + PHP-FPM và ủy quyền
- 10. Trả lại tiêu đề dưới dạng mảng bằng cách sử dụng Curl
- 11. Cách sử dụng thuộc tính ủy quyền trên MVC3
- 12. Làm cách nào để đặt các tiêu đề yêu cầu tùy chỉnh bằng curl và PHP?
- 13. Cách đặt tiêu đề bằng UITabbarsystemitem
- 14. cách ủy quyền sử dụng google-api-ruby-client
- 15. Cách đặt lại ủy quyền google oauth 2.0?
- 16. Làm cách nào để thêm tiêu đề ủy quyền tùy chỉnh vào ứng dụng khách OData của Windows Store App?
- 17. Ủy quyền nhận thức ngữ cảnh bằng cách sử dụng CanCan
- 18. Nhà máy ủy quyền của Autofac bằng cách sử dụng func <>
- 19. Tìm kiếm nhị phân danh sách C# bằng cách sử dụng điều kiện ủy quyền
- 20. Tải lên Amazon S3 bằng cách sử dụng cURL/libcurl
- 21. Thêm tiêu đề tùy chỉnh bằng cách sử dụng HttpWebRequest
- 22. RAW POST bằng cách sử dụng cURL trong PHP
- 23. Cách đặt tiêu đề QMainWindow
- 24. Đặt tiêu đề SOAP tùy chỉnh bằng cách sử dụng Axis 1.4
- 25. Tương tác nhập dòng tiêu đề để đặt mục nhập bằng cách sử dụng ảnh chụp
- 26. Cách sử dụng http.client trong Node.js nếu có ủy quyền cơ bản
- 27. Android Volley ImageLoader - Cách sử dụng Ủy quyền HTTP cơ bản?
- 28. Đặt ngôn ngữ phụ đề bằng cách sử dụng ffmpeg
- 29. Làm cách nào để lưu tệp bằng tên tệp tiêu đề phản hồi với cURL
- 30. Các tiêu đề tùy chỉnh PHP cURL
ok nhưng làm thế nào trong php? – Vixed
@Vixed Câu hỏi này rõ ràng không phải về PHP. [Có gì sai với kết quả của Google] (s)? – Oli