2017-01-01 20 views
6

में फेसबुक लॉगिन मैंने जेडब्ल्यूटी द्वारा इस परियोजना को गिट https://github.com/szerhusenBC/jwt-spring-security-demo में संदर्भित टोकन आधारित वसंत सुरक्षा विकसित की है। अब मुझे अपने आवेदन में फेसबुक लॉगिन प्राप्त करने की आवश्यकता है। सामाजिक लॉगिन के लिए, मुझे एक और वेब पेज https://ole.michelsen.dk/blog/social-signin-spa-jwt-server.html मिला जो बताता है कि सामाजिक लॉगिन कैसे किया जाना चाहिए।जेडब्ल्यूटी

सामान्य लॉगिन में, मेरी जेडब्ल्यूटी परियोजना उपयोगकर्ता नाम, पासवर्ड, समाप्ति तिथि और सृजन के समय के आधार पर एक टोकन बनाती है। हर बार टोकन आता है, उपरोक्त क्षेत्रों के सभी मूल्यों को पुनर्प्राप्त किया जाता है और टोकन को प्रमाणित करने की तुलना में और फिर सेवा की जाती है। मेरे पास दो प्रश्न हैं:

  1. सामाजिक लॉगिन में, कोई पासवर्ड नहीं बनाया जाएगा। फेसबुक से एक टोकन प्राप्त होगा (मेरा फ्रंटएंड यह करता है)। मुझे यह सत्यापित करना होगा कि टोकन मान्य है या नहीं। मुझे जेडब्ल्यूटी में ऐसा कैसे करना चाहिए?
  2. लेख के अनुसार सत्यापित करने के बाद मुझे भविष्य के संदर्भ के लिए अपना खुद का टोकन बनाना है। अब, फेसबुक लॉगिन में कोई पासवर्ड नहीं है। मैं टोकन कैसे बना सकता हूं?

मुझे बताएं कि वसंत बूट applictaion में जेडब्ल्यूटी का उपयोग कर सामाजिक लॉगिन के लिए कोई अच्छी साइट उपलब्ध है या नहीं।

+0

क्या आपको कोई समाधान मिला है? – Stuck

उत्तर

0

मैंने खुद को इसी तरह की स्थिति में पाया, और थोड़ा अलग दृष्टिकोण का पालन करने का फैसला किया, जिससे सर्वर पर एफबी के साथ प्रमाणीकरण की ज़िम्मेदारी सौंपी गई।

यह एक प्रविष्टि बिंदु प्रदान करता है: “/auth/facebook” जो एफबी पर रीडायरेक्ट करता है और प्रमाणीकरण तक पहुंचता है।

इसके बाद यह लॉग किए गए उपयोगकर्ता के लिए एक्सेस टोकन प्राप्त करता है और क्लाइंट को लौटने वाला जेडब्ल्यूटी टोकन बनाता है। Stateless Spring Security Part 3: JWT + Social Authentication

1

अपने जेडब्ल्यूटी से पासवर्ड फ़ील्ड को हटाने पर विचार करें:

यहाँ एक ब्लॉग पोस्ट एक ऐसी ही मामले के लिए स्प्रिंग सामाजिक फेसबुक और स्प्रिंग सुरक्षा का उपयोग करने का तरीका बताने है। फेसबुक आपको ईमेल और नाम की आपूर्ति कर सकता है ताकि पेलोड के लिए इसका इस्तेमाल किया जा सके। मेरा उदाहरण यहाँ है।

userSchema.methods.generateJwt = function() { 
    var expiry = new Date(); 
    expiry.setDate(expiry.getDate() + 7); 

    return jwt.sign(
    { 
     _id: this._id, 
     email: this.email, 
     name: this.name, 
     exp: parseInt(expiry.getTime()/1000) 
    }, 
    jwt_secret 
); 
}; 
+0

हम आमतौर पर बाहरी रूप से जुड़े हुए बजाय उत्तर में सीधे कोड लिखना पसंद करते हैं। – Litty

+2

हाय, प्रतिक्रिया के लिए धन्यवाद! अब समुदाय सीखना मैं इसे संशोधित करूंगा। – Tetsuya3850

+0

माना जाता है कि सीखने के लिए बहुत कुछ है :) आपका स्वागत है। – Litty

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