পাসপোর্ট.js বিশ্রামের লেখক a


155

ওয়েব ইন্টারফেসের পরিবর্তে কোনও পাসপোর্ট.জেএস ব্যবহার করে কোনও কীভাবে প্রমাণীকরণ (স্থানীয় এবং ফেসবুক) পরিচালনা করে?

নির্দিষ্ট উদ্বেগগুলি হ'ল কলব্যাক থেকে কোনও রিসালফুল রেসপন্স (জেএসওএন) বনাম একটি সাধারণ রেস.সেন্ড ({ডেটা: রেক.ডাটা}) ব্যবহার করে একটি প্রাথমিক / লগইন শেষ পয়েন্ট স্থাপন করে যা ফেসবুকে পুনর্নির্দেশ করে (/ লগইন হতে পারে না) AJAX এর মাধ্যমে অ্যাক্সেস করা হয়েছে, কারণ এটি কোনও JSON প্রতিক্রিয়া নয় - এটি একটি কলব্যাক দিয়ে ফেসবুকে পুনর্নির্দেশ)।

আমি https://github.com/halrobertson/test-restify-passport-facebook খুঁজে পেয়েছি , তবে এটি বুঝতে আমার সমস্যা হচ্ছে।

তদুপরি, পাসপোর্ট.js কীভাবে প্রমাণীকরণের শংসাপত্রগুলি সংরক্ষণ করে? সার্ভারটি (বা এটি পরিষেবা?) মঙ্গোডিবি দ্বারা সমর্থিত, এবং আমি শংসাপত্রগুলি (লগইন এবং পিডাব্লু এর সল্টেড হ্যাশ) সংরক্ষণ করার আশা করতাম, তবে পাসপোর্ট.জেজেসের এই ধরণের ক্ষমতা আছে কিনা তা আমি জানি না।


যেহেতু আপনি নোডে নতুন, তাই সহজ শুরু করুন এবং এর জন্য উদাহরণ প্রয়োগটি দেখুনpassport-facebook । আপনি এই কাজটি করার পরে, পরবর্তী পদক্ষেপটি কীভাবে পাসপোর্টটি কাজ করে এবং এটি কীভাবে শংসাপত্রগুলি সংরক্ষণ করে তা বুঝতে শুরু করা। এটিকে পুনঃনির্মাণের দিকে লক্ষ্য করা (আপনি যেটির উল্লেখ করেছেন তার একটি আপডেট সংস্করণ দেখুন এখানে ) শেষ ধাপগুলির একটি হতে পারে (বা আপনি এক্সপ্রেসে আরইএসটি ইন্টারফেসটি প্রয়োগ করতে পারেন)।
রবার্টক্লেপ

উত্তর:


312

এখানে অনেকগুলি প্রশ্ন জিজ্ঞাসা করা হয়েছে, এবং মনে হচ্ছে নোড এবং পাসপোর্টের প্রসঙ্গে প্রশ্নগুলি জিজ্ঞাসা করা হলেও, আসল প্রশ্নগুলি কোনও নির্দিষ্ট প্রযুক্তি দিয়ে কীভাবে করা যায় তার চেয়ে কর্মপ্রবাহ সম্পর্কে আরও বেশি।

আসুন @ কিথ উদাহরণস্বরূপ সেটআপটি ব্যবহার করুন, যুক্ত সুরক্ষার জন্য কিছুটা সংশোধিত:

  • ওয়েব সার্ভারে https://example.comএকটি একক পৃষ্ঠা জাভাস্ক্রিপ্ট ক্লায়েন্ট অ্যাপ্লিকেশন সরবরাহ করে
  • RESTful ওয়েব পরিষেবা https://example.com/apiসমৃদ্ধ ক্লায়েন্ট অ্যাপ্লিকেশনটিতে সার্ভার সমর্থন সরবরাহ করে
  • নোড এবং পাসপোর্ট.জেজে সার্ভার প্রয়োগ করা হয়েছে।
  • সার্ভারের একটি "ব্যবহারকারী" সারণী সহ একটি ডাটাবেস (কোনও ধরণের) রয়েছে।
  • ব্যবহারকারীর নাম / পাসওয়ার্ড এবং ফেসবুক কানেক্ট প্রমাণীকরণ বিকল্প হিসাবে দেওয়া হয়
  • ধনী ক্লায়েন্ট আরএসটি-র অনুরোধ করে https://example.com/api
  • সেখানে অন্যান্য ক্লায়েন্টদের (ফোন অ্যাপ্লিকেশান, উদাহরণস্বরূপ) যে ওয়েব পরিষেবা ব্যবহার করা যেতে পারে https://example.com/apiকিন্তু ওয়েব সার্ভার সম্পর্কে জানি না https://example.com

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

ব্যবহারকারীর নাম / পাসওয়ার্ড প্রমাণীকরণ

আসুন প্রথমে কীভাবে সরল পুরানো প্রমাণীকরণ কাজ করে তা দেখুন।

  • ব্যবহারকারীর সাথে সংযোগ স্থাপন করে https://example.com
  • সার্ভারটি একটি সমৃদ্ধ জাভাস্ক্রিপ্ট অ্যাপ্লিকেশন পরিবেশন করে যা প্রাথমিক পৃষ্ঠাটি রেন্ডার করে। পৃষ্ঠায় কোনওরকম একটি লগইন ফর্ম রয়েছে।
  • ব্যবহারকারী এই লগইন না করায় এই একক পৃষ্ঠার অ্যাপ্লিকেশনটির অনেকগুলি অংশ ডেটা দিয়ে পপ করা যায়নি All এই সমস্ত বিভাগটিতে একটি "লগইন" ইভেন্টে ইভেন্ট শ্রোতা রয়েছে। এই সমস্ত ক্লায়েন্টের পাশের জিনিস, সার্ভারটি এই ইভেন্টগুলি সম্পর্কে জানে না।
  • ব্যবহারকারী তার লগইন এবং পাসওয়ার্ড প্রবেশ করে এবং জমা বোতামটি হিট করে, যা জাভাস্ক্রিপ্ট হ্যান্ডলারটিকে ক্লায়েন্ট পাশের ভেরিয়েবলের মধ্যে ব্যবহারকারীর নাম এবং পাসওয়ার্ড রেকর্ড করতে ট্রিগার করে। তারপরে এই হ্যান্ডলারটি "লগইন" ইভেন্টটিকে ট্রিগার করে। আবার এটি সমস্ত ক্লায়েন্টের পক্ষের ক্রিয়া, শংসাপত্রগুলি এখনও সার্ভারে প্রেরণ করা হয়নি
  • "লগইন" ইভেন্টের শ্রোতাদের অনুরোধ করা হয়েছে। পৃষ্ঠাগুলিতে https://example.com/apiরেন্ডার করার জন্য ব্যবহারকারীদের নির্দিষ্ট ডেটা পেতে এইগুলির প্রত্যেকটির এখনই RESTful API এ এক বা একাধিক অনুরোধ প্রেরণ করা দরকার । তারা ওয়েব পরিষেবায় প্রেরিত প্রতিটি একক অনুরোধে ব্যবহারকারীর নাম এবং পাসওয়ার্ড অন্তর্ভুক্ত করবে, সম্ভবত এইচটিটিপি বেসিক প্রমাণীকরণের আকারে , যেহেতু পরিষেবাটি বিশ্রামপ্রাপ্ত তাই এক অনুরোধ থেকে পরবর্তী অনুরোধে ক্লায়েন্টের অবস্থা বজায় রাখার অনুমতি নেই। যেহেতু ওয়েব পরিষেবাদি সুরক্ষিত HTTP এ রয়েছে ট্রানজিটের সময় পাসওয়ার্ডটি নিরাপদে এনক্রিপ্ট করা হয়।
  • ওয়েব সার্ভিস https://example.com/apiপ্রমাণীকরণের তথ্য সহ প্রতিটি পৃথক অনুরোধের একটি গোছা গ্রহণ করে। প্রতিটি অনুরোধে ব্যবহারকারীর নাম এবং পাসওয়ার্ড ব্যবহারকারীর ডাটাবেসের বিপরীতে পরীক্ষা করা হয় এবং সঠিক প্রমাণিত হলে অনুরোধ করা ফাংশনটি কার্যকর করে এবং ডেটা ক্লায়েন্টকে জেএসএন ফর্ম্যাটে ফিরিয়ে দেওয়া হয়। যদি ব্যবহারকারীর নাম এবং পাসওয়ার্ড না মেলে একটি ত্রুটি ক্লায়েন্টকে 401 এইচটিটিপি ত্রুটি কোড আকারে প্রেরণ করা হয়।
  • প্রতিটি অনুরোধের সাথে ক্লায়েন্টদের ব্যবহারকারীর নাম এবং পাসওয়ার্ড প্রেরণ করার পরিবর্তে আপনার RESTful পরিষেবাদিতে একটি "get_access_token" ফাংশন থাকতে পারে যা ব্যবহারকারীর নাম এবং পাসওয়ার্ড নেয় এবং একটি টোকেন দিয়ে সাড়া দেয়, যা কিছু ধরণের ক্রিপ্টোগ্রাফিক হ্যাশ যা অনন্য এবং এর মেয়াদ শেষ হয়ে যায় iration এর সাথে সম্পর্কিত তারিখ এই টোকেনগুলি প্রতিটি ব্যবহারকারীর সাথে ডাটাবেসে সংরক্ষণ করা হয়। তারপরে ক্লায়েন্ট পরবর্তী অনুরোধগুলিতে অ্যাক্সেস টোকেন প্রেরণ করে। অ্যাক্সেস টোকেনটি ব্যবহারকারীর নাম এবং পাসওয়ার্ডের পরিবর্তে ডাটাবেসের বিরুদ্ধে বৈধ হয়ে যাবে।
  • ফোন অ্যাপ্লিকেশনগুলির মতো নন ব্রাউজার ক্লায়েন্ট অ্যাপ্লিকেশনগুলি উপরের মতো করে, তারা ব্যবহারকারীকে তার শংসাপত্রগুলি প্রবেশ করতে বলে, তারপরে তাদের (বা তাদের থেকে উত্পন্ন একটি অ্যাক্সেস টোকেন) ওয়েব সার্ভিসে প্রতিটি অনুরোধের সাথে প্রেরণ করতে বলে।

এই উদাহরণ থেকে গুরুত্বপূর্ণ টেক অফ পয়েন্টটি হ'ল RESTful ওয়েব পরিষেবাগুলির প্রতিটি অনুরোধের সাথে প্রমাণীকরণের প্রয়োজন

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

ফেসবুক প্রমাণীকরণ

উপরের কর্মপ্রবাহটি ফেসবুক সংযোগের জন্য কাজ করে না কারণ ফেসবুকের মাধ্যমে লগইনটিতে একটি তৃতীয় পক্ষ, ফেসবুক রয়েছে। লগইন পদ্ধতিতে ব্যবহারকারীর ফেসবুকের ওয়েবসাইটে পুনঃনির্দেশ করা প্রয়োজন যেখানে শংসাপত্রগুলি আমাদের নিয়ন্ত্রণের বাইরে enteredোকানো হয়।

সুতরাং আসুন দেখুন কীভাবে বিষয়গুলি পরিবর্তিত হয়:।

  • ব্যবহারকারীর সাথে সংযোগ স্থাপন করে https://example.com
  • সার্ভারটি একটি সমৃদ্ধ জাভাস্ক্রিপ্ট অ্যাপ্লিকেশন পরিবেশন করে যা প্রাথমিক পৃষ্ঠাটি রেন্ডার করে। পৃষ্ঠায় কোনওরকম একটি লগইন ফর্ম রয়েছে যাতে "ফেসবুকের সাথে লগইন" বোতাম অন্তর্ভুক্ত রয়েছে।
  • ব্যবহারকারী "ফেসবুক উইথ ফেসবুক" বোতামটি ক্লিক করেন, এটি কেবল একটি লিঙ্ক যা পুনঃনির্দেশ করে (উদাহরণস্বরূপ) https://example.com/auth/facebook
  • https://example.com/auth/facebookরুট passport.js দ্বারা পরিচালিত হয় (দেখুন ডকুমেন্টেশন )
  • সমস্ত ব্যবহারকারী দেখেছে যে পৃষ্ঠাটি পরিবর্তিত হয়েছে এবং এখন তারা ফেসবুক দ্বারা পরিচালিত একটি পৃষ্ঠায় রয়েছে যেখানে তাদের আমাদের ওয়েব অ্যাপ্লিকেশনটি লগইন করতে ও অনুমোদিত করতে হবে। এটি পুরোপুরি আমাদের নিয়ন্ত্রণের বাইরে।
  • ফেসবুক ব্যবহারকারী লগ এবং, আমাদের আবেদন করার অনুমতি দেয়, যাতে ফেসবুক এখন কলব্যাক URL রয়েছে যা আমরা passport.js সেটআপ, যা দৃষ্টান্ত অনুসরণ কনফিগার ফিরে পুননির্দেশনা ডকুমেন্টেশন হয়https://example.com/auth/facebook/callback
  • এই পাসপোর্ট.জেএস হ্যান্ডলারটি https://example.com/auth/facebook/callbackএই কলব্যাক ফাংশনটি উপভোগ করবে যা ফেসবুকের অ্যাক্সেস টোকেন এবং ব্যবহারকারীর ইমেল ঠিকানা সহ ফেসবুক থেকে কিছু ব্যবহারকারীর তথ্য গ্রহণ করবে।
  • ইমেলটির সাহায্যে আমরা ব্যবহারকারীকে আমাদের ডাটাবেসে সনাক্ত করতে পারি এবং এর সাথে ফেসবুক অ্যাক্সেস টোকেন সংরক্ষণ করতে পারি।
  • আপনি ফেসবুক কলব্যাকের শেষ কাজটি সমৃদ্ধ ক্লায়েন্ট অ্যাপ্লিকেশনটিতে পুনর্নির্দেশ করা, তবে এবার আমাদের ব্যবহারকারীর নাম এবং ক্লায়েন্টের কাছে অ্যাক্সেস টোকেনটি পাস করতে হবে যাতে এটি সেগুলি ব্যবহার করতে পারে। এই উপায়ে একটি সংখ্যা মধ্যে করা সম্ভব। উদাহরণস্বরূপ, জাভাস্ক্রিপ্ট ভেরিয়েবলগুলি সার্ভার-সাইড টেম্পলেট ইঞ্জিনের মাধ্যমে পৃষ্ঠাতে যুক্ত করা যেতে পারে, না হলে এই তথ্য সহ একটি কুকি ফিরিয়ে দেওয়া যেতে পারে। (ইউআরএলটিতে এই ডেটা পাস করার সাথে সাথে সুরক্ষা সম্পর্কিত বিষয়গুলি নির্দেশ করার জন্য @ রায়ানকিমবারকে ধন্যবাদ জানাই)
  • সুতরাং এখন আমরা আরও একবার সিঙ্গল পেজ অ্যাপ্লিকেশন শুরু করি, কিন্তু ক্লায়েন্টটির ব্যবহারকারীর নাম এবং অ্যাক্সেস টোকেন রয়েছে।
  • ক্লায়েন্ট অ্যাপ্লিকেশনটি "লগইন" ইভেন্টটি তাত্ক্ষণিকভাবে ট্রিগার করতে পারে এবং অ্যাপ্লিকেশনটির বিভিন্ন অংশকে ওয়েব পরিষেবা থেকে তাদের প্রয়োজনীয় তথ্যের জন্য আবেদন করতে দেয়।
  • প্রেরিত সমস্ত অনুরোধগুলিতে https://example.com/apiপ্রমাণীকরণের জন্য ফেসবুক অ্যাক্সেস টোকন বা আরএসটি এপিআইতে "get_access_token" ফাংশনের মাধ্যমে ফেসবুকের টোকেন থেকে আবেদনের নিজস্ব অ্যাক্সেস টোকেন অন্তর্ভুক্ত থাকবে।
  • ব্রাউজারবিহীন অ্যাপ্লিকেশনগুলিতে এটি এখানে আরও কিছুটা কঠিন, কারণ ওআউথকে লগ ইন করার জন্য একটি ওয়েব ব্রাউজারের প্রয়োজন a ফেসবুকের অ্যাক্সেস টোকেনটিকে কিছু পদ্ধতির মাধ্যমে অ্যাপ্লিকেশনটিতে ফিরে যাওয়ার জন্য ব্রাউজারের একটি উপায় প্রয়োজন।

আমি আশা করি এটি বেশিরভাগ প্রশ্নের উত্তর দেয়। অবশ্যই আপনি টুইটার, গুগল বা অন্য কোনও OAuth ভিত্তিক প্রমাণীকরণ পরিষেবা দিয়ে ফেসবুক প্রতিস্থাপন করতে পারেন।

কারও কাছে এটির মোকাবেলার সহজ উপায় আছে কিনা তা জানতে আমি আগ্রহী be


5
আপনার বিস্তারিত প্রতিক্রিয়া জন্য আপনাকে ধন্যবাদ। কেবল একটি প্রশ্ন: আপনি তা বলেন Every single request they send to the web service will include the username and password, এবং এখনও আপনি বলছেন you can have a "get_access_token" function in your RESTful service। এটা বলতে দ্বিদ্বেগমূলক বলে মনে হয় যে REST কে রাষ্ট্রহীন হওয়া দরকার, তবে অ্যাক্সেস টোকেন সার্ভারের দিকটি ঠিক আছে, যেহেতু অ্যাক্সেস টোকেনগুলি সংরক্ষণ করার এই ক্রিয়াকলাপটির অর্থ সার্ভার এখন রাষ্ট্রীয় state আমি এই বিষয়ে কোন স্পষ্টতা বা ন্যায়সঙ্গত প্রশংসা করব। ধন্যবাদ! :)
রায়নারী

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

1
@ ডেক্সটার: traditionalতিহ্যবাহী লগইন ক্ষেত্রে কোনও ব্যবহারকারী কোনও ফর্মের মধ্যে ব্যবহারকারীর নাম এবং পাসওয়ার্ড প্রবেশ করে এবং যখন তিনি জমা দিন বোতামটি হিট করেন তখন এই তথ্যটি একটি ওয়েব সার্ভারে পোস্ট করা হয়। এই ক্ষেত্রে এটি না ঘটে, ব্যবহারকারী ফর্মটি পূরণ করে এবং যখন তিনি একটি জাভাস্ক্রিপ্ট হ্যান্ডলারটি জমা দিন (জমা দেওয়ার বোতামে একটি অন্লিক ইভেন্ট) হিট করে তখন ডেটা ক্যাপচার করে এবং ক্লায়েন্টের প্রসঙ্গে রাখে। আমার দেখানোর জন্য প্রস্তুত উদাহরণ নেই, তবে আমার ব্লগের এই টিউটোরিয়ালটির দ্বিতীয় অংশের জন্য নজর রাখুন যেখানে আমি এটি কীভাবে করব তা দেখাব: blog.miguelgrinberg.com/post/…
মিগুয়েল

2
এটি লেখার পক্ষে খুব সুচিন্তিত, তবে এতে একটি গুরুত্বপূর্ণ পর্যবেক্ষণ বা ত্রুটি রয়েছে। ফেসবুক লগইন (বা গিথুব, টুইটার, ইত্যাদি) পরিচালনা করার সময়, টোকনটি কোনও কুকিতে ক্লায়েন্টের কাছে ফেরত দেওয়া এবং তারপরে ক্লায়েন্ট-সাইডের কুকিটি সন্ধানের পরে মুছে ফেলা অনেক বেশি পছন্দ করা হবে। ইউআরএল স্ট্রিংয়ের অংশ হিসাবে টোকেন পাস করা এই URL টি ব্রাউজারের ইতিহাসে যুক্ত করবে এবং (যদি জিনিসগুলি ভুলভাবে পরিচালনা করা হয়) এই URL টি ব্রাউজারের দ্বারা অনুরোধ করাতে পারে being হয় টোকেনটি দৃশ্যমান করে তোলে। তারপরে যে কেউ ইউআরএল অনুলিপি করেছেন তারা আপনার অ্যাপ্লিকেশনটিতে এই ব্যবহারকারীর বোকা বানিয়ে দিতে পারে।
রায়ান কিম্বার

1
@ নাথান: https- র উপরে প্রাথমিক লেখক নিরাপদ, তাই হ্যাঁ, এটি একটি গ্রহণযোগ্য প্রক্রিয়া।
মিগুয়েল

11

আমি প্রতিটি ক্ষেত্রে সম্পূর্ণ প্রবাহের সাথে মিগুয়েলের ব্যাখ্যাটির প্রশংসা করি তবে আমি ফেসবুক প্রমাণীকরণ অংশে কিছু যুক্ত করতে চাই।

ফেসবুক একটি জাভাস্ক্রিপ্ট এসডিকে সরবরাহ করে যা আপনি ক্লায়েন্ট-এন্ডে সরাসরি অ্যাক্সেস টোকেন পেতে ব্যবহার করতে পারেন, যা সার্ভারে দেওয়া হয় এবং ফেসবুক থেকে সমস্ত ব্যবহারকারীর তথ্য টানতে ব্যবহৃত হয়। সুতরাং আপনার মূলত কোনও পুনঃনির্দেশের প্রয়োজন নেই।

তদুপরি, আপনি মোবাইল অ্যাপ্লিকেশনগুলির জন্যও একই API এন্ড-পয়েন্টটি ব্যবহার করতে পারেন। কেবলমাত্র ফেসবুকের জন্য অ্যান্ড্রয়েড / আইওএস এসডিকে ব্যবহার করুন, ক্লায়েন্টের শেষে ফেসবুক অ্যাক্সেস_ টোকনটি পান এবং এটি সার্ভারে প্রেরণ করুন।

বর্ণিত রাজ্যহীন প্রকৃতি সম্পর্কে , যখন get_access_token একটি টোকেন তৈরি করতে এবং ক্লায়েন্টের কাছে প্রেরণ করা হয়, তখন এই টোকেনটি সার্ভারেও সংরক্ষণ করা হয়। সুতরাং এটি একটি সেশন টোকেন হিসাবে ভাল এবং আমি বিশ্বাস করি এটি এটিকে রাষ্ট্রীয় করে তোলে?

শুধু আমার 2 সেন্ট ..


1
এটি অত্যন্ত গুরুত্বপূর্ণ, কারণ এইভাবে আপনি ফেসবুক ব্যবহার করে এক পৃষ্ঠার কেবল-এজাক্স অ্যাথ করতে পারেন। টোকেন সেশন প্রবন্ধ হিসাবে সমানভাবে সুরক্ষিত, পার্থক্য কেবলমাত্র একটি টোকেন অন্য ডোমেনে পাস করা যেতে পারে এবং সেশনটি শুধুমাত্র একটি নির্দিষ্ট ডোমেনে ব্যবহৃত হয়। এক্সপ্রেস এবং পাসপোর্ট ব্যবহার করার সময়, আপনি একটি এপিআই তৈরি করতে পারেন যা একটি রাষ্ট্রকে রক্ষা করে এবং সেশনের লেখার ব্যবহার করতে পারে।
jperelli

জাভাস্ক্রিপ্ট এপিআই দুর্দান্ত আপনি যদি ফেসবুকের বিরুদ্ধে ক্রিয়াকলাপের জন্য ব্যবহারকারীকে প্রমাণীকরণ করতে চান তবে আপনি নিজের সার্ভার / ডাটাবেসের বিরুদ্ধে ব্যবহারকারীর যাচাই করতে চান তবে নিজেই অকেজো I
জেমস ওয়েস্টগেট

4
আপনি উপরের মিগুয়েল দ্বারা বর্ণিত পদ্ধতিটিও ব্যবহার করতে পারেন, তবে তারপরে অথ কলব্যাকে ক্লায়েন্টকে পুনঃনির্দেশ করার সময় আপনার নিজের JWT টোকেনটি কুকি হিসাবে ইস্যু করুন। এটি উভয় বিশ্বের সেরাকে অনুমতি দেয় - আপনার একক পৃষ্ঠার অ্যাপ্লিকেশনটি কেবলমাত্র এক প্রকারের প্রমাণীকরণ (জেডাব্লুটি) সম্পর্কে উদ্বিগ্ন হতে পারে, একই মাত্রার সুরক্ষা রেখে এবং কোনও সামাজিক লগইনকে ব্যবহার না করেই সমর্থন করার নমনীয়তা সরবরাহ করে while প্রতিটি সামাজিক নেটওয়ার্কের জন্য নির্দিষ্ট জাভাস্ক্রিপ্ট এপিআই (ফেসবুক, টুইটার, লিংকডইন, গুগল, ইত্যাদি)। এটি আপনাকে ব্যবহারকারীর নাম / পাসওয়ার্ড এবং REST অ্যাক্সেসের জন্য AJAX- স্টাইল সমর্থন বজায় রাখতে দেয়।
রায়ান কিম্বার

ফেসবুক জাভাস্ক্রিপ্ট এসডিকে বর্তমানে ক্রোম আইওএসের সাথে কাজ করে না। কারও কারও জন্য একটি ইস্যু হতে পারে।
ডেমিস্যাক্স

@ রায়ানকিমবার আপনি কি একটি ছোট গিট রেপো লিখতে পারেন বা অনুরূপ যেখানে এটি উদাহরণস্বরূপ পুরোপুরি আটকে আছে
সাইমন ড্রাগসব্যাক

3

এখানে আমি পেয়েছি এমন দুর্দান্ত একটি নিবন্ধ যা আপনাকে এটি দিয়ে প্রমাণীকরণ করতে সহায়তা করতে পারে:

  • ফেসবুক
  • টুইটার
  • গুগল
  • স্থানীয় আথ

সহজ নোড প্রমাণীকরণ: সেটআপ এবং স্থানীয়


আপনার লিঙ্কটি কোনও নিবন্ধের দিকে নয় তবে পরিবর্তে 'জাভাস্ক্রিপ্ট' দিয়ে ট্যাগ করা নিবন্ধগুলির তালিকায় রয়েছে
পাওলো অলিভিয়রা

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