2014-12-05 4 views
6

के साथ मैंने express.js ढांचे का उपयोग करके एक सरल 'हैलो-वर्ल्ड' वेब ऐप बनाया है।एलटीआई लॉन्च प्रमाणीकरण Node.js

मैं चाहता हूं कि ऐप आईएमएस-एलटीआई अनुपालन हो ताकि मूडल और अन्य लर्निंग मैनेजमेंट सिस्टम इसे बाहरी टूल के रूप में लॉन्च कर सकें।

हालांकि, मुझे नहीं पता कि मेरे ऐप में एलटीआई लॉन्च को प्रमाणित करने के तरीके (यह ओथ का उपयोग करता है), और मुझे कोई भी व्यक्त.जेएस/नोड.जेएस उदाहरण नहीं मिल रहा है कि यह कैसे किया जाता है। मैं देखता हूं कि पासपोर्ट-एलटीआई नोड मॉड्यूल मौजूद है (https://www.npmjs.org/package/passport-lti), लेकिन नोड के साथ नोब के रूप में मैं सिर्फ स्पैस दस्तावेज को समझ नहीं पा रहा हूं।

मैं स्थानीय प्रमाणीकरण बनाने के लिए passport.js का इस्तेमाल किया है - इस वीडियो (https://www.youtube.com/watch?v=twav6O53zIQ), मैं LTI लांच प्रमाणीकरण के लिए इसी तरह की मदद के लिए उम्मीद थी का उपयोग कर ...

किसी भी मदद की सराहना की है।

चीयर्स, ओली

+0

मैं अंत में इसे बाहर करने में कामयाब रहा। मुझे एहसास नहीं हुआ था कि नोड मॉड्यूल परीक्षण कोड के साथ ही दस्तावेज़ीकरण के साथ आते हैं। मैंने यह समझने के लिए टेस्ट कोड का उपयोग किया कि इसे कैसे किया जाए। –

+0

यदि आपको कोई बात नहीं है, तो क्या आप अपना उत्तर यहां पोस्ट कर सकते हैं? – agpt

+0

उत्तर भी देखना चाहते हैं – rjerue

उत्तर

1

जब एक LTI उपकरण उपभोक्ता (अर्थात एक LMS) एक LTI आवेदन (उपकरण प्रदाता) की शुरूआत LTI उपकरण एक HTTP पोस्ट भेजी जाती है।

यह प्रमाणित करने के लिए कि पोस्ट वैध है, आपको यह सत्यापित करने की आवश्यकता है कि पोस्ट वेरिएबल 'oauth_signature' आपके द्वारा टूल उपभोक्ता के साथ आदान-प्रदान की गई साझा गुप्त कुंजी का उपयोग करके स्थानीय रूप से हस्ताक्षर को पुनः संयोजित करके मान्य है जब एलटीआई उपकरण कॉन्फ़िगर किया गया था ।

ओएथ हस्ताक्षर की पुष्टि करने का कार्य संभवतः ओएथ लाइब्रेरी द्वारा संभाला जा सकता है .. नोडजेस में पहले से ही ये है, इसलिए कृपया एक को दोबारा लागू न करें।

आप IMS Global documentation

1

में लांच अनुरोध मान्य की पूरी प्रक्रिया को पढ़ सकते हैं बस है कि मैं कुछ समय के लिए वापस इस की एक काम उदाहरण कर समाप्त हो गया उल्लेख करना चाहता था।

https://github.com/ripples/Present/blob/master/server/app.js#L35

passport.use('lti-strategy', new CustomStrategy(
    function(req, callback) { 
     var val = (req.body) ? req.body : req.user  
     try{ 
      var provider = new lti.Provider(val , process.env.LTI_SECRET) 
      if(req.user){ 
       callback(null, val)   
      } 
      else{ 
       provider.valid_request(req, function(err, isValid) { 
        if(err){ 
         console.log("LTI Error", err, isValid) 
        } 
        callback(err, val) 
       }); 
      }  
     } 
     catch(err){ 
      console.log("Authenication error", err) 
      callback(err, null) 
     } 
    } 
)) 

मैं एक कस्टम पासपोर्ट रणनीति कर रहे हैं और प्रमाणीकरण करने के लिए एक और पुस्तकालय का उपयोग कर समाप्त हो गया।

https://github.com/omsmith/ims-lti

यह new lti.Provider बिट, महत्वपूर्ण यह है कि यह LTI पोस्ट अनुरोध वस्तु में ले जाता है प्रमाणन करना है कि है।

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