2012-07-06 22 views
12

मैं थोड़ी देर के लिए सोच रहा हूं कि मैं बैकबोन का उपयोग कर उपयोगकर्ताओं को प्रमाणीकृत करने के बारे में कैसे सोचूंगा क्योंकि मैं इसके बारे में कुछ लेख पढ़ रहा हूं और उनमें से कई टोकन और चाबियों के बारे में बात कर रहे हैं .. लेकिन मैं बस एक उपयोगकर्ता में साइन इन करने और सामान्य रूप से आपके जैसे उपयोगकर्ता को पंजीकृत करने में सक्षम होना चाहता हूं।Backbone.js और उपयोगकर्ता प्रमाणीकरण

मैं सोच रहा था कि वेब एप्लिकेशन पर शुरू मार्ग के लिए एक अनुरोध होगा '/ मुझे' और उसके बाद सर्वर उपयोगकर्ता वापस उचित जानकारी अगर वह/वह प्रवेश होने देता है।

की तरह करता है, तो मार्ग {loggedIn: false} के साथ वापस आया था रीढ़ की हड्डी राउटर उपयोगकर्ता को केवल लॉगिन/रजिस्टर पृष्ठों पर भेज देगा। लेकिन अगर यह उपयोगकर्ता प्रोफाइल जानकारी के साथ वापस आया तो इसका स्पष्ट अर्थ होगा कि उसके पास सत्र था।

क्या यह बैकबोन का उपयोग करते समय उपयोगकर्ता प्रमाणीकरण वापस जाने का एक ठीक तरीका है?

+0

जावास्क्रिप्ट का उपयोग करके पंजीकरण, पंजीकरण और प्रमाणीकरण करें? मैं नहीं कहूंगा। Php, Erlang, Python, Asp.net का उपयोग करके बैकएंड फ्रेमवर्क का उपयोग करके इन टुकड़ों को रखें। उपयोगकर्ता लॉग इन करने के बाद, एक कुकी सेट करें (सबसे अच्छा समाधान मैं सोच सकता हूं)। ** प्रत्येक ** 'xml http' अनुरोध में कुकी होगी जिसमें उपयोगकर्ता को सर्वर पर सत्यापित करने में आपकी सहायता होगी। सर्वर और प्रमाणीकरण पर आपको कुछ सामान मिलना है, प्रमाणीकरण उनमें से एक है। – Deeptechtons

+1

में उपयोगकर्ता लॉग के बाद जेएस सामान करें जो मैं अपने प्रश्न में कह रहा हूं, लेकिन मुझे आश्चर्य है कि क्या मेरी विधि लॉग इन या अनधिकृत उपयोगकर्ता – jamcoupe

उत्तर

31

संक्षिप्त उत्तर: 401 (अनधिकृत) स्थिति कोड का जवाब देने के लिए $ .ajax तार।

लंबा उत्तर: हम एक पृष्ठ की वेबसाइट से एक विश्वसनीय एपीआई खा रहे हैं। जब सर्वर एक अनधिकृत अनुरोध का पता लगाता है, तो यह केवल 401 देता है। क्लाइंट/लॉगिन करने के लिए रीडायरेक्ट करेगा? # अनुरोध/संसाधन।

/login प्राधिकरण के लिए संकेत देगा (हमारे मामले में गूगल के शपथ सर्वर पर रीडायरेक्ट) तो एक प्राधिकरण कुकी जोड़ सकते हैं और मूल रूप से करने के लिए पुनर्निर्देशित अनुरोध किया #requested/resource

हम भी हर $ .ajax अनुरोध पर प्रमाणन कुकी भेज रहे हैं।

उम्मीद है कि यह उपयोगी है।

define(
    [ 
     'jquery', 
     'jquery.cookie' 
    ], 
    function ($) { 
     var redirectToLogin = function() { 
      var locationhref = "/login"; 
      if (location.hash && location.hash.length > 0) { 
       locationhref += "?hash=" + location.hash.substring(1); 
      } 
      location.href = locationhref; 
     }; 

     var $doc = $(document); 
     $doc.ajaxSend(function (event, xhr) { 
      var authToken = $.cookie('access_token'); 
      if (authToken) { 
       xhr.setRequestHeader("Authorization", "Bearer " + authToken); 
      } 
     }); 

     $doc.ajaxError(function (event, xhr) { 
      if (xhr.status == 401) 
       redirectToLogin(); 
     }); 
    }); 
+0

+1 से निपटने का एक अच्छा तरीका है। एक जादू की तरह काम करता है। –

संबंधित मुद्दे