আমি একটি REST এপিআই বিকাশ করছি যার প্রমাণীকরণ প্রয়োজন। এইচটিটিপি-র মাধ্যমে প্রমাণীকরণটি একটি বাহ্যিক ওয়েবসার্চির মাধ্যমে ঘটে তাই আমি যুক্তি দিয়েছিলাম যে আমরা বার বার প্রমাণীকরণ পরিষেবাটি কল করা এড়াতে টোকেন সরবরাহ করব ens যা আমার প্রথম প্রশ্নের ঝরঝরে আমাকে এনেছে:
প্রতিটি অনুরোধে ক্লায়েন্টদের এইচটিটিপি বেসিক অ্যাথ ব্যবহার করা এবং প্রমাণীকরণ পরিষেবা সার্ভার-সাইডে ক্যাশে কল করার চেয়ে এটি কি আসলেই ভাল?
বুনিয়াদি প্রমাণীকরণের সমাধানটির বিষয়বস্তুর জন্য অনুরোধগুলি শুরু হওয়ার আগে সার্ভারে পুরো রাউন্ড-ট্রিপ প্রয়োজন না হওয়ার সুবিধা রয়েছে। টোকেনগুলি সম্ভাব্য সুযোগে আরও নমনীয় হতে পারে (অর্থাত্ নির্দিষ্ট উত্স বা ক্রিয়াকলাপগুলিতে কেবলমাত্র অধিকার প্রদান করে) তবে এটি আমার সহজ ব্যবহারের ক্ষেত্রে ওউথ প্রসঙ্গে উপযুক্ত বলে মনে হয়।
বর্তমানে টোকেনগুলি এই জাতীয়ভাবে অর্জিত হয়:
curl -X POST localhost/token --data "api_key=81169d80...
&verifier=2f5ae51a...
×tamp=1234567
&user=foo
&pass=bar"
api_key
, timestamp
এবং verifier
সমস্ত অনুরোধ দ্বারা প্রয়োজন হয়। "যাচাইকারী" এর দ্বারা ফিরে আসে:
sha1(timestamp + api_key + shared_secret)
আমার উদ্দেশ্য হ'ল কেবল পরিচিত দলগুলির কলকে মঞ্জুরি দেওয়া এবং কলগুলি পুনরায় ব্যবহার থেকে বিরত রাখা।
এটা কি যথেষ্ট? Underkill? Overkill?
একটি টোকেন হাতে রেখে, ক্লায়েন্টরা সংস্থানগুলি অর্জন করতে পারে:
curl localhost/posts?api_key=81169d80...
&verifier=81169d80...
&token=9fUyas64...
×tamp=1234567
সহজতম কলের জন্য, এটি এক ধরণের ভয়াবহ ভার্বোস বলে মনে হয়। উইলের বিষয়টি বিবেচনা করে shared_secret
কোনও আইওএস অ্যাপ্লিকেশন (সর্বনিম্ন) এম্বেড করা হবে, যা থেকে আমি ধরে নেব যে এটি উত্তোলন করা যেতে পারে, এটি কি সুরক্ষার কোনও মিথ্যা অনুভূতির বাইরেও কিছু সরবরাহ করছে?