2011-02-02 21 views
7

में सक्रियण यूआरएल उत्पन्न करें मैं जावा ईई 6 वेब प्रोफाइल का उपयोग कर एक वेब अनुप्रयोग विकसित कर रहा हूं। मैं एक नए उपयोगकर्ता को अपने खाते के लिए एक सक्रियण लिंक ई-मेल करना चाहता हूं। मुझे इसे कैसे कार्यान्वित करना चाहिए? मैं जेएसएफ 2 का उपयोग कर रहा हूँ। क्या ऐसा करने के लिए कोई विनिर्देश या अनुशंसित तरीका है?जावा ईई 6

+0

क्या आप सक्रियण यूआरएल के साथ भेजे जाने वाले 'कुंजी' को बनाना चाहते हैं या आप जेएसएफ में बुक-मार्क करने योग्य यूआरएल पीढ़ी चाहते हैं? – Nishant

+0

बिल्कुल, उपयोगकर्ता पंजीकृत है, और एक कुंजी के साथ एक यूआरएल अपने ईमेल पर भेजा जाता है जैसे: http://mysite.com/activate?key=dsafadsfwe पर क्लिक करें ताकि आप अपना खाता सक्रिय कर सकें। – arg20

+0

हो सकता है कि मैं जेएसएफ से यूआरएल तक पहुंच सकूं और कुंजी पैरामीटर या कुछ – arg20

उत्तर

16

मैं एक परियोजना है कि उपयोगकर्ता के लिए आवश्यक अपने ईमेल-आईडी पुष्टि करने के लिए सक्रिय करने के लिए पर काम किया है करने के लिए उपयोगकर्ता सक्रियण/सत्यापन करते हैं और रीडायरेक्ट करेगा शामिल उसके पंजीकरण। कुंजी पीढ़ी प्रक्रिया कुछ इस तरह था:

कुंजी निर्माण

  1. users मेज है कि एक उपयोगकर्ता के लिए अद्वितीय सत्यापन अहम में एक स्तंभ verification_key बनाएँ।
  2. अपने अद्वितीय उपयोगकर्ता नाम (इस मामले में ईमेल आईडी) को अपने पासवर्ड के रूप में नमक के साथ SHA256 हैश का उपयोग करें।
  3. हैश को base64 पर कनवर्ट करें और उस उपयोगकर्ता के verification_key में स्टोर करें। यह अद्वितीय होगा (व्यावहारिक उद्देश्यों के लिए, मैं टकराव की संभावना में नहीं जाऊंगा)।

हां, तो नीचे की रेखा, key = Base64(Hash256(uniqueUserName+"."+password))

......

ओर टिप्पणी: Btw, कुछ भी नहीं है आप नमक के रूप में पासवर्ड का उपयोग करने की अनुमति नहीं देता। आप केवल नमक के रूप में फ्लाई पर एक मनमानी स्ट्रिंग बना सकते हैं।

सत्यापन

  1. चूंकि हम जानते हैं verification_key अद्वितीय है, अनुरोध पैरामीटर से key हो और मिलान पंक्ति खोजें।
  2. यदि पाया गया है, verification_keynull के रूप में सेट करें (इससे कोई टक्कर होने की संभावना भी कम हो जाएगी) और उपयोगकर्ता को "सफलतापूर्वक सत्यापित पृष्ठ" पर ले जाएं।
  3. यदि नहीं मिला, तो उपयोगकर्ता को "पहले से सक्रिय/कुंजी-नहीं मिला/401 पृष्ठ" पर ले जाएं।
+1

हाय। यह एक बहुत उपयोगी उत्तर बहुत धन्यवाद है। मैं आपके कार्यान्वयन से एक और चीज़ जानना चाहता हूं।एक बार जब उपयोगकर्ता सक्रिय हो जाता है, तो आपको हर बार कुछ करने की कोशिश नहीं करनी चाहिए, तो क्या मुझे एक और टेबल चाहिए, "लंबित_यूज़र" कहें ताकि उपयोगकर्ता उपयोगकर्ता तालिका में हो, तो क्या मैं इसे सक्रिय कर सकता हूं? – arg20

+1

'UUID.randomUUID()' का उपयोग यादृच्छिक संख्या उत्पन्न करने के लिए किया जा सकता है –

1

एक सक्रियण यूआरएल एक 'सेवा' अनुरोध को संसाधित करने वाली सॉफ्टवेयर सेवा की एक छाप को उजागर करता है।

अच्छा उम्मीदवारों इस सेवा का एहसास करने सर्वलेट्स जो एक JSF सफलता-पेज

+0

मैंने कभी भी servlets का उपयोग नहीं किया है जेएसएफ 2 पहले से ही मुझे वास्तव में उनकी जरूरत नहीं है। क्या आप मुझे कोड का कुछ टुकड़ा दिखा सकते हैं, कृपया? – arg20

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