কুকিজ প্রেরণে সিআরএল কীভাবে ব্যবহার করবেন?


296

আমি পড়েছি যে কার্লগুলি দিয়ে কুকি প্রেরণ করে কাজ করে তবে তা আমার পক্ষে নয়।

আমার একটি RESTশেষ পয়েন্ট রয়েছে:

class LoginResource(restful.Resource):
    def get(self):
        print(session)
        if 'USER_TOKEN' in session:
            return 'OK'
        return 'not authorized', 401

যখন আমি এই হিসাবে অ্যাক্সেস করার চেষ্টা করি:

curl -v -b ~/Downloads/cookies.txt -c ~/Downloads/cookies.txt http://127.0.0.1:5000/
* About to connect() to 127.0.0.1 port 5000 (#0)
*   Trying 127.0.0.1...
* connected
* Connected to 127.0.0.1 (127.0.0.1) port 5000 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.27.0
> Host: 127.0.0.1:5000
> Accept: */*
>
* HTTP 1.0, assume close after body
< HTTP/1.0 401 UNAUTHORIZED
< Content-Type: application/json
< Content-Length: 16
< Server: Werkzeug/0.8.3 Python/2.7.2
< Date: Sun, 14 Apr 2013 04:45:45 GMT
<
* Closing connection #0
"not authorized"%

আমার কোথায় ~/Downloads/cookies.txt:

cat ~/Downloads/cookies.txt
USER_TOKEN=in

এবং সার্ভার কিছুই পায় না:

127.0.0.1 - - [13/Apr/2013 21:43:52] "GET / HTTP/1.1" 401 -
127.0.0.1 - - [13/Apr/2013 21:45:30] "GET / HTTP/1.1" 401 -
<SecureCookieSession {}>
<SecureCookieSession {}>
127.0.0.1 - - [13/Apr/2013 21:45:45] "GET / HTTP/1.1" 401 -

আমি কী মিস করছি?


আমি মনে করি -cবিকল্পটি curlআপনার কুকি ফাইলটিকে আউটপুট কুকি জার হিসাবে ব্যবহার করতে বলেছে যা আপনি যা চান তা নাও হতে পারে।
ব্লেন্ডার

সঙ্গে এক -bবিকল্প একা এছাড়াও কাজ করছে না, একই ভুল দান :(
Daydreamer

-bকুকি ফাইলের ফর্ম্যাটটি কেবল নয় var=value, এটি ব্যবহার করে লিখিত কুকি জারের বিন্যাসের মতো হওয়া উচিত -c। এই বিকল্পের সাহায্যে কুকি প্রেরণকারী কোনও সাইটে যান এবং ফলাফলের ফাইলটি একবার দেখুন।
বর্মার

-বি কুকি_ফাইলে হয় নেটস্কেপ / মজিলা ফর্ম্যাট বা সরল এইচটিটিপি শিরোনাম থাকা উচিত। এখানে সরল HTTP শিরোনামগুলির একটি উদাহরণ: সেট-কুকি: কুকি_নাম = কুকি_মূল্য; এটি খালি সর্বনিম্ন। শেষে সেমিকোলনটি ভুলে যাবেন না।
অ্যালেক্স

উত্তর:


492

এটি আমার পক্ষে কাজ করেছে:

curl -v --cookie "USER_TOKEN=Yes" http://127.0.0.1:5000/

আমি ব্যাকেন্ডে ব্যবহার করে মানটি দেখতে পেতাম

print request.cookies

17
যতক্ষণ না আপনি কখনও না হন ততক্ষণ কোনও কুকি হিসাবে কোনও ব্যবহারকারীকে টোকেন দেওয়ার জন্য বুলিয়ান থাকতে হবে, তবে তারা কেবল সেভাবে লগইন না করে নিজের প্রমাণীকরণ করতে পারে।
ম্যাট 1

15
ম্যান পেজ অনুসারে, বিকল্পের জন্য -b, --cookie, উদাহরণস্বরূপ curl -b <file-or-pairs>, যদি আর্গুমেন্টটি '='চিহ্নের একটি স্ট্রিং থাকে , তবে এটি পাশ হয়, অন্যথায় এটি থেকে কুকি পড়ার জন্য ফাইলের নাম হিসাবে বিবেচিত হয়।
ryenus

61
একাধিক কুকিজ সেমিকোলন--cookie "key1=val1;key2=val2;..."

এই উত্তরটি কেন শীর্ষে নেই আমি ভাবছি ... উত্তর-বাছাইয়ের প্লাগইন কারও?
আইওএমভি

@iomv পরিবর্তে "সক্রিয়" ভোট "অনুসারে বাছাই করুন
fahrradflucht

91

কীভাবে কুকিজের সাথে কাজ করবেন তার সম্পূর্ণ টিউটোরিয়ালটির জন্য আপনি https://curl.haxx.se/docs/http-cookies.html পড়তে পারেন। তুমি ব্যবহার করতে পার

curl -c /path/to/cookiefile http://yourhost/

একটি কুকি ফাইলে লিখতে এবং ইঞ্জিন শুরু করতে এবং আপনার ব্যবহার করতে পারেন এমন কুকি ব্যবহার করতে

curl -b /path/to/cookiefile  http://yourhost/

কুকিগুলি থেকে কুকি পড়তে এবং কুকি ইঞ্জিন শুরু করতে, বা এটি কোনও ফাইল না হলে এটি প্রদত্ত স্ট্রিংয়ে চলে যাবে।


1
আইএমও আপনি অফিসিয়াল ডক যা কাদা যেমন স্পষ্ট উপর উন্নত করা হয়নি - ওভারলোডিং পাশে এর -bপতাকা কি মধ্যে অপরিহার্য পরিবর্তন হয় -c& -bতারা উভয় একটি কুকি ফাইলে ইঞ্জিন এবং বিন্দু শুরু?
শে

4
@ নেড কুকি ফাইলটিতে -c লেখেন , -bএটি থেকে পড়েন। সুতরাং লগইন ফর্মের জন্য শংসাপত্রগুলি প্রেরণ -cকরার সময় আপনি কোনও ফাইলে ফলাফলযুক্ত কুকি লিখতে নির্দিষ্ট করবেন, তারপরে আপনি -bআপনার পরবর্তী অনুরোধে কুকিটি পড়তে এবং অন্তর্ভুক্ত করতে ব্যবহার করবেন।
ম্যাডব্রেকস

26
বা ব্রাউজারগুলির মতো একই কুকি স্টোরটিতে curl -b cookiefile -c cookiefile https://yourhost/পড়তে এবং লিখতে করতে।
লিনাক্সডিসিপল

38

আপনি আপনার কুকি ফাইলে একটি ভুল ফর্ম্যাট ব্যবহার করছেন। কার্ল ডকুমেন্টেশন হিসাবে বলা হয়েছে, এটি একটি পুরানো নেটস্কেপ কুকি ফাইল ফর্ম্যাট ব্যবহার করে যা ওয়েব ব্রাউজারগুলির ব্যবহৃত বিন্যাস থেকে আলাদা different যদি আপনাকে নিজে কার্ল কুকি ফাইল তৈরি করতে হয় তবে এই পোস্টটি আপনাকে সহায়তা করা উচিত। আপনার উদাহরণে ফাইলটিতে নিম্নলিখিত লাইন থাকা উচিত

127.0.0.1   FALSE   /   FALSE   0   USER_TOKEN  in

7 টিএবি -বিভক্ত ক্ষেত্র রয়েছে যার অর্থ ডোমেন , টেলম্যাচ , পাথ , সুরক্ষিত , মেয়াদোত্তীকরণ , নাম , মান


2
হ্যাঁ, এটি সিআরএল কুকি ফর্ম্যাট। এগুলি স্পেস নয়, ট্যাবস।
এম

4
এটি সরকারী উত্তর হিসাবে চিহ্নিত করা উচিত, যেহেতু এটি সত্যই এই বিষয়টিকে সম্বোধন করে যে কেন @ ডেডিমায়ারের সেটআপ ব্যর্থ হয়েছিল।
ভালবার

0

যদি আপনি ইতিমধ্যে আপনার অ্যাপ্লিকেশনটিতে এই অনুরোধটি তৈরি করেছেন এবং এটি গুগল ডেভ সরঞ্জামগুলিতে লগ হয়েছে দেখুন, নেটওয়ার্ক ট্যাবে অনুরোধটিতে ডান ক্লিক করার সময় আপনি প্রসঙ্গ মেনু থেকে অনুলিপি সিআরএল কমান্ডটি ব্যবহার করতে পারেন। অনুলিপি -> সিআরএল হিসাবে অনুলিপি করুন। এতে সমস্ত শিরোলেখ, কুকিজ ইত্যাদি থাকবে ..

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.