বিশ্রামের লগইন ব্যর্থতা: 401 বা কাস্টম প্রতিক্রিয়া ফেরান


103

এটি একটি ধারণাগত প্রশ্ন।

আমার কাছে একটি ক্লায়েন্ট (মোবাইল) অ্যাপ্লিকেশন রয়েছে যা একটি রেস্টস্টুল ওয়েব পরিষেবার বিরুদ্ধে লগইন ক্রিয়াকে সমর্থন করা প্রয়োজন। যেহেতু ওয়েব পরিষেবাটি বিশ্রামযুক্ত, এটি ক্লায়েন্টের ব্যবহারকারীর কাছ থেকে ব্যবহারকারীর নাম / পাসওয়ার্ড গ্রহণ করে, পরিষেবার সাথে সেই ব্যবহারকারীর নাম / পাসওয়ার্ড যাচাই করে এবং তারপরে সমস্ত অনুরোধগুলির সাথে সেই ব্যবহারকারীর নাম / পাসওয়ার্ড প্রেরণ করার কথা মনে পড়ে।

এই ওয়েব পরিষেবায় অন্যান্য সমস্ত প্রতিক্রিয়া একটি জেএসএন ফর্ম্যাটে সরবরাহ করা হয়েছে।

প্রশ্নটি হ'ল, যখন আমি ওয়েব পরিষেবাটি কেবল কোনও প্রদত্ত ব্যবহারকারীর নাম / পাসওয়ার্ডটি বৈধ কিনা তা অনুসন্ধান করার জন্য জিজ্ঞাসা করি, যখন ওয়েব পরিষেবাটি সর্বদা আমাকে জেএসওন ডেটার সাথে তার সফল বা ব্যর্থ বলার সাথে প্রতিক্রিয়া জানায়, বা এটি ভাল শংসাপত্র এবং এইচটিটিপি-তে HTTP 200 ফিরিয়ে দেয়? খারাপ শংসাপত্রগুলিতে 401।

আমি জিজ্ঞাসা করার কারণটি হ'ল কিছু অন্যান্য RESTful পরিষেবাদি খারাপ শংসাপত্রগুলির জন্য 401 ব্যবহার করে এমনকি আপনি যখন কেবল জিজ্ঞাসা করছেন শংসাপত্রগুলি বৈধ কিনা। তবে, 401 টি প্রতিক্রিয়া সম্পর্কে আমার বোঝা হ'ল তারা এমন একটি সংস্থান উপস্থাপন করে যা বৈধ শংসাপত্র ছাড়াই আপনার অ্যাক্সেস থাকার কথা নয়। তবে লগইন সংস্থানটি যে কারও কাছে অ্যাক্সেসযোগ্য হওয়া উচিত কারণ লগইন সংস্থানটির পুরো উদ্দেশ্যটি আপনার শংসাপত্রগুলি বৈধ কিনা তা আপনাকে জানানো।

অন্য একটি উপায় রাখুন, এটি আমার কাছে অনুরোধের মতো বলে মনে হচ্ছে:

myservice.com/this/is/a/user/action 

খারাপ শংসাপত্র সরবরাহ করা হলে 401 ফেরত আসা উচিত। তবে একটি অনুরোধ যেমন:

myservice.com/are/these/credentials/valid

401 কখনই ফেরানো উচিত না কারণ সেই নির্দিষ্ট ইউআরএল (অনুরোধ) বৈধ শংসাপত্রগুলির সাথে বা ছাড়াই অনুমোদিত।

আমি এই বিষয়ে কিছু উপায়ে কিছু মতামত শুনতে চাই। এটি পরিচালনা করার মানক উপায় কী এবং এটি যৌক্তিকভাবে পরিচালনার মানক উপায় কী?

উত্তর:


128

প্রথম বন্ধ. 401 হ'ল প্রেরণ করার জন্য যথাযথ প্রতিক্রিয়া কোড যখন কোনও ব্যর্থ লগইন ঘটে।

401 অননুমোদিত 403 নিষিদ্ধ এর অনুরূপ, তবে বিশেষত ব্যবহারের জন্য যখন প্রমাণীকরণ প্রয়োজন হয় এবং ব্যর্থ হয় বা এখনও সরবরাহ করা হয় নি। প্রতিক্রিয়াটিতে অবশ্যই একটি WWW- প্রমাণীকরণের শিরোনাম ক্ষেত্রকে অনুরোধ করা সংস্থানটিতে প্রযোজ্য একটি চ্যালেঞ্জ থাকতে হবে।

আপনার বিভ্রান্তি সম্পর্কে, myservice.com/are/these/credentials/valid401 ফেরত প্রেরণ যখন আপনি কেবল একটি চেক করেন, আমার মনে হয় যে REST এ বুলিয়ান অনুরোধ করা প্রায়শই রেস্টস্টুল বাধা দ্বারা ভুল হয়। প্রতিটি অনুরোধের একটি উত্স ফেরত দেওয়া উচিত। আরএসটিফুল সার্ভিসে বুলিয়ান প্রশ্ন করা RPC- এর পিছলে পিচ্ছিল pp

আপনি এখন যে পরিষেবাগুলি দেখেছেন সেগুলি কীভাবে আচরণ করছে তা আমি জানি না। তবে এটি সমাধানের একটি ভাল উপায় হ'ল কোনও অ্যাকাউন্ট অবজেক্টের মতো কিছু থাকা, যা আপনি পাওয়ার চেষ্টা করছেন। আপনি যদি শংসাপত্রগুলি সঠিক হন তবে আপনি অ্যাকাউন্ট অবজেক্টটি পাবেন, যদি আপনি ব্যান্ডউইথকে কেবল "চেক" করতে নষ্ট করতে না চান তবে আপনি একই উত্সটিতে একটি হেড করতে পারেন।

একটি অ্যাকাউন্ট অবজেক্ট সেই সমস্ত বেঁচে থাকা বুলিয়ান মানগুলি সংরক্ষণ করার জন্য একটি দুর্দান্ত জায়গা যা অন্যথায় এর জন্য স্বতন্ত্র সংস্থান তৈরি করা জটিল।


2
রিসোর্স রিটার্ন সম্পর্কে আপনার বক্তব্যটি বৈধ বলে মনে হচ্ছে এবং এটি সম্ভবত এখানে সঠিক পদক্ষেপ। 401 যথাযথ প্রতিক্রিয়া হিসাবে উল্লেখ করে, আমি সেখানে কিছু ব্যাখ্যা প্রশংসা করব। আপনি এখানে অন্তর্ভুক্ত করেছেন হিসাবে আমি এইচটিটিপি অনুমানটি পড়েছি, তবে তা আপনার দৃ of়তার প্রত্যক্ষ এবং সুস্পষ্ট নিশ্চিতকরণ হিসাবে আমার কাছে পড়েনি। যথা, শংসাপত্রগুলির বৈধতা সম্পর্কে জিজ্ঞাসা করার জন্য প্রমাণীকরণের প্রয়োজন হয় না - তবুও আপনি যা অন্তর্ভুক্ত করেছিলেন "বিশেষত যখন প্রমাণীকরণের প্রয়োজন হয় তখন ব্যবহারের জন্য।"
ম্যাট

3
এটি দেখার আপনার উপায়টি সঠিক। আপনার অ্যাকাউন্টের বিষয়টির জন্য জিজ্ঞাসা করতে আপনাকে অনুমোদনের দরকার নেই। তবে আপনাকে সংস্থানটি কার্যকর করার জন্য সাফল্য অর্জন করতে সক্ষম হতে হবে এবং এটি authentication is required and has failed or has not yet been providedপ্রযোজ্য হবে যেখানে আপনি শংসাপত্রের বৈধতা জিজ্ঞাসা করবেন না, তবে আপনার সরবরাহিত শংসাপত্রগুলির উপর ভিত্তি করে একটি নির্দিষ্ট উত্সের জন্য।
ক্লারিক

2
আমি বুঝতে পারি আপনি কেন "চেক-কল" করতে চান এবং তার জন্য, কলটি কল করার জন্য প্রমাণীকরণের প্রয়োজন না হলেও, আমি ব্যর্থ প্রমাণীকরণের জন্য উপযুক্ত প্রতিক্রিয়া কোড হিসাবে 401 প্রচার করব promote একটি 204 কোনও সামগ্রীও উপযুক্ত নাও হতে পারে তবে কিছুটা অস্পষ্টভাবে মনে হয়।
ক্লারিক

4
আপনি যদি বেসিক বা ডাইজেস্ট প্রমাণীকরণ ব্যবহার না করেন তবে এটি কীভাবে সঠিক হতে পারে তা আমি দেখতে পাচ্ছি না। অনুমানের উদ্ধৃত অংশ অনুযায়ী: "প্রতিক্রিয়াটিতে অবশ্যই একটি ডাব্লুডাব্লুডাব্লু-প্রমাণীকরণ অন্তর্ভুক্ত করা উচিত" - এবং আপনি যদি বিভাগ 14.47 উল্লেখ করেন: "এইচটিটিপি অ্যাক্সেস প্রমাণীকরণ প্রক্রিয়াটি" এইচটিটিপি প্রমাণীকরণ: বেসিক এবং ডাইজেস্ট অ্যাক্সেস প্রমাণীকরণ "তে বর্ণিত হয়েছে। আমার কাছে আপনি 401 যথাযথ নয় যদি আপনি সাধারণত ইমেল / পাসওয়ার্ডের বৈধতা ব্যবহার করেন
জোনাহ

1
আমি মনে করি এটি ভুল হতে পারে, আমি ক্লায়েন্টদের ওয়েব এবং মোবাইল উভয়ই প্রয়োগ করে চলেছি এবং লগইন স্ক্রিনে পুনর্নির্দেশের জন্য আমি 401 কে স্বীকার করছি। কিন্তু যখন কেউ ইতিমধ্যে লগইন স্ক্রিনে রয়েছে এবং ভুল শংসাপত্রগুলি জমা দেয় তখন প্রতিক্রিয়াটিরও 401 থাকে এবং আবার পুনঃনির্দেশের চেষ্টা করবে। সুস্পষ্টভাবে চেষ্টা করার সময় প্রমাণীকরণের ব্যর্থ চেষ্টার জন্য আলাদা স্ট্যাটাস কোড থাকতে হবে। একটি খারাপ অনুরোধ বা এমনকি সার্ভার ত্রুটি?
জাপেথ ওঙ্গেরি - ইনকালেমেভা

28

401 কেবল তখনই প্রেরণ করা উচিত যখন অনুরোধটির অনুমোদনের শিরোনাম ক্ষেত্র এবং অনুমোদন ব্যর্থ হয়। যেহেতু লগইন এপিআইয়ের অনুমোদনের প্রয়োজন নেই, সুতরাং 401 আমার মতে ভুল ত্রুটি কোড

মান হিসাবে এখানে https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html

* 10.4.2 401 অননুমোদিত

অনুরোধটির ব্যবহারকারীর প্রমাণীকরণ প্রয়োজন। প্রতিক্রিয়া আবশ্যক একটি WWW- প্রমাণীকরণ শিরোনাম ক্ষেত্র অন্তর্ভুক্ত করা উচিত (বিভাগ 14.47) অনুরোধ উত্স উপর প্রযোজ্য একটি চ্যালেঞ্জ। ক্লায়েন্ট মায় অনুরোধটি যথাযথ অনুমোদনের শিরোনাম ক্ষেত্রের সাথে (বিভাগের 14.8) পুনরাবৃত্তি করবে। যদি অনুরোধটিতে ইতিমধ্যে অনুমোদনের শংসাপত্রগুলি অন্তর্ভুক্ত থাকে তবে 401 প্রতিক্রিয়াটি নির্দেশ করে যে সেই শংসাপত্রগুলির জন্য অনুমোদন প্রত্যাখ্যান করা হয়েছে। যদি 401 এর প্রতিক্রিয়া পূর্বের প্রতিক্রিয়াটির মতো একই চ্যালেঞ্জ ধারণ করে এবং ব্যবহারকারী এজেন্ট ইতিমধ্যে কমপক্ষে একবার প্রমাণীকরণের চেষ্টা করেছে, তবে ব্যবহারকারীর প্রতিক্রিয়াতে দেওয়া সত্তা উপস্থাপন করা উচিত, কারণ সেই সত্তায় প্রাসঙ্গিক ডায়াগোনস্টিক তথ্য অন্তর্ভুক্ত থাকতে পারে। HTTP অ্যাক্সেস প্রমাণীকরণের "HTTP প্রমাণীকরণ: বেসিক এবং ডাইজেস্ট অ্যাক্সেস প্রমাণীকরণ" [43]। এ ব্যাখ্যা করা হয়েছে *


8
আমি এ বিষয়ে আপনার সাথে একমত, তবে প্রেরণের বিকল্প প্রতিক্রিয়ার স্থিতি কী? আমি ক্লায়েন্টগুলি ওয়েব এবং মোবাইল উভয় ক্ষেত্রেই প্রয়োগ করে চলেছি এবং 401 লগইন স্ক্রিনে পুনর্নির্দেশের জন্য আমি বাধা দিই। কিন্তু যখন কেউ ইতিমধ্যে লগইন স্ক্রিনে রয়েছে এবং ভুল শংসাপত্র জমা দেয় তখন প্রতিক্রিয়াটিরও 401 থাকে এবং আবার পুনর্নির্দেশের চেষ্টা করবে ... আপনি কী করবেন?
জাপেথ ওঙ্গেরি - ইনকালেমেভা

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