উত্তর:
http://curl.haxx.se/docs/httpscripting.html
অংশ 6 দেখুন। HTTP প্রমাণীকরণ
HTTP প্রমাণীকরণ
এইচটিটিপি প্রমাণীকরণ হ'ল সার্ভারটি আপনার ব্যবহারকারীর নাম এবং পাসওয়ার্ডটি বলার ক্ষমতা যাতে এটি যাচাই করতে পারে যে আপনি যে অনুরোধটি করছেন তা করার অনুমতি দিয়েছেন। এইচটিটিপিতে ব্যবহৃত বেসিক প্রমাণীকরণ (এটি ডিফল্টরূপে কার্ল ব্যবহার করে টাইপ করা হয়) প্লেইন টেক্সট ভিত্তিক, যার অর্থ এটি ব্যবহারকারীর নাম এবং পাসওয়ার্ডটি কেবলমাত্র কিছুটা অবরুদ্ধ করে প্রেরণ করে তবে আপনার এবং রিমোট সার্ভারের মধ্যে নেটওয়ার্কে স্নিগ্ধ এমন যে কেউ এখনও পুরোপুরি পঠনযোগ্য।
প্রমাণীকরণের জন্য ব্যবহারকারী এবং পাসওয়ার্ড ব্যবহার করতে কার্লকে বলতে:
curl --user name:password http://www.example.com
সাইটের জন্য আলাদা আলাদা প্রমাণীকরণ পদ্ধতি প্রয়োজন (সার্ভার দ্বারা ফিরে আসা শিরোনামগুলি পরীক্ষা করুন) এবং তারপরে --ntlm, --digest, --negotiate বা এমনকি --anyauth আপনার পছন্দ অনুসারে বিকল্প হতে পারে।
কখনও কখনও আপনার HTTP অ্যাক্সেস কেবলমাত্র HTTP প্রক্সি ব্যবহারের মাধ্যমেই উপলব্ধ। এটি বিভিন্ন সংস্থায় বিশেষত সাধারণ বলে মনে হয়। এইচটিটিপি প্রক্সির ক্লায়েন্টকে ইন্টারনেটে প্রবেশের অনুমতি দেওয়ার জন্য তার নিজস্ব ব্যবহারকারী এবং পাসওয়ার্ডের প্রয়োজন হতে পারে। কার্ল সহ তাদের নির্দিষ্ট করতে, এমন কিছু চালান:
curl --proxy-user proxyuser:proxypassword curl.haxx.se
যদি আপনার প্রক্সিটির এনটিএলএম পদ্ধতি ব্যবহার করে প্রমাণীকরণের প্রয়োজন হয় তবে --proxy-ntlm ব্যবহার করুন, যদি এটি ডাইজেস্ট ব্যবহারের প্রয়োজন হয় --প্রক্সি-ডাইজেস্ট।
আপনি যদি এই ব্যবহারকারীর + পাসওয়ার্ড বিকল্পগুলি ব্যবহার করেন তবে পাসওয়ার্ডের অংশটি ছেড়ে যান, কার্ল ইন্টারেক্টিভভাবে পাসওয়ার্ডের জন্য অনুরোধ করবে।
মনে রাখবেন যে যখন কোনও প্রোগ্রাম চালানো হয় তখন সিস্টেমের চলমান প্রক্রিয়াগুলির তালিকা তৈরি করার সময় এর পরামিতিগুলি দেখা সম্ভব হতে পারে। সুতরাং, অন্য ব্যবহারকারীরা আপনার পাসওয়ার্ডগুলি যদি প্লেইন কমান্ড লাইন বিকল্প হিসাবে পাস করে তবে তা দেখতে সক্ষম হতে পারে। এটি রোধ করার উপায় রয়েছে।
এটি লক্ষণীয় যে এইচটিটিপি অনুমোদনের কাজটি করার সময়, অনেক লগইন সরবরাহ করার সময় অনেক ওয়েব সাইট এই ধারণাটি ব্যবহার করে না that এ সম্পর্কে আরও তথ্যের জন্য নীচের ওয়েব লগইন অধ্যায়টি দেখুন।
কেবল যোগ করা হচ্ছে যাতে আপনার ক্লিক-মাধ্যমে করতে হবে না:
curl --user name:password http://www.example.com
বা যদি আপনি OAuth 2 এর জন্য প্রমাণীকরণ প্রেরণ করার চেষ্টা করছেন:
curl -H "Authorization: OAuth <ACCESS_TOKEN>" http://www.example.com
-H
বিকল্প মহান।
-H Authorization: Basic <Base64EncodedCredentials>
HMAC-SHA256
সর্বদা নিখুঁত অনুমোদনের শিরোনামের একটি ত্রুটি পেয়ে একটি অনুমোদনের শিরোনাম যুক্ত করার চেষ্টা করছি
<Base64EncodedCredentials>
হিসাবে দ্বারা @ টিমোথি-kansaki উল্লেখ করা হয়েছে, আপনি পেতে পারেন এনকোডেড ক্রেডেনশিয়াল কমান্ড ব্যবহার করছে: cred="$( echo $NAME:$PASSWORD | base64 )"; curl -H "Authorization: Basic $cred" https://example.com
। রেফারেন্সের জন্য দেখুন স্ট্যাকওভারফ্লো
বহনকারী টোকেনগুলি দেখতে দেখতে:
curl -H "Authorization: Bearer <ACCESS_TOKEN>" http://www.example.com
(যারা পিএইচপি-কার্ল উত্তর খুঁজছেন )
$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);
এটি আমার পক্ষে কাজ করেছে:
curl -H "Authorization: Token xxxxxxxxxxxxxx" https://www.example.com/
Authorization: bearer xxxxxxxxx
?
Bearer
Bearer
।
HTTP বেসিক অথের জন্য:
curl -H "Authorization: Basic <_your_token_>" http://www.example.com
প্রতিস্থাপন _your_token_
এবং ইউআরএল।
echo -ne "<your-user>:<your-pass>" | base64 --wrap 0
সহায়িকা মৌলিক লেখার টোকেন উত্পন্ন করবে।
-H "Authorization: Basic <_your_token_>"
হিসাবে একই প্রভাব আছে --user login:password
। আপনি এটি দিয়ে পরীক্ষা করতে পারেনcurl -v
সতর্কতা অবলম্বন করুন যে আপনি যখন ব্যবহার করছেন:
curl -H "Authorization: token_str" http://www.example.com
token_str
এবং Authorization
অবশ্যই সাদা স্থান দ্বারা পৃথক করা উচিত, অন্যথায় সার্ভার-সাইডটি HTTP_AUTHORIZATION
পরিবেশ পাবেন না ।
কলটি করার সময় যদি আপনার কাছে টোকেন না থাকে, আপনাকে দুটি কল করতে হবে, একটি টোকেন পেতে এবং অন্যটি টোকেনটির ফর্মটি সাড়া দেওয়ার জন্য, প্রতিক্রিয়াটি মনোযোগ দিন
গ্রেপ টোকেন | কাট-ডি, -ফ 1 | কাট-ডি \ "-f4
যেহেতু এটি সেই অংশ যা প্রতিক্রিয়া থেকে টোকেনটি উত্তোলনের কাজ করছে।
echo "Getting token response and extracting token"
def token = sh (returnStdout: true, script: """
curl -S -i -k -X POST https://www.example.com/getToken -H \"Content-Type: application/json\" -H \"Accept: application/json\" -d @requestFile.json | grep token | cut -d, -f1 | cut -d\\" -f4
""").split()
টোকনটি বের করার পরে আপনি নিম্নলিখিত কলগুলি করতে টোকেনটি ব্যবহার করতে পারেন।
echo "Token : ${token[-1]}"
echo "Making calls using token..."
curl -S -i -k -H "Accept: application/json" -H "Content-Type: application/json" -H "Authorization: Bearer ${token[-1]}" https://www.example.com/api/resources