আমি এটি খুঁজে বের!
সবার আগে আপনাকে সঠিক কৌশলটি প্রয়োগ করতে হবে। আমার ক্ষেত্রে লোকালস্ট্রেজি এবং আপনাকে আপনার বৈধতা যুক্তি সরবরাহ করতে হবে। উদাহরণস্বরূপ আসুন পাসপোর্ট-লোকালটিতে এটি ব্যবহার করুন।
var passport = require('passport')
, LocalStrategy = require('passport-local').Strategy;
passport.use(new LocalStrategy(
function(username, password, done) {
User.findOne({ username: username }, function(err, user) {
if (err) { return done(err); }
if (!user) {
return done(null, false, { message: 'Incorrect username.' });
}
if (!user.validPassword(password)) {
return done(null, false, { message: 'Incorrect password.' });
}
return done(null, user);
});
}
));
আপনার প্রদত্ত যাচাইকরণ কল function(username, password, done)
ব্যাকটি আপনার ব্যবহারকারীর সন্ধান এবং পাসওয়ার্ড মেলে কিনা তা প্রশ্নের যত্ন নেবে (প্রশ্নের ক্ষেত্র এবং আমার উত্তরের বাইরে)
পাসপোর্ট.জেএস এটির জন্য বেশ কয়েকটি টুকরো আশা করে, একটি হ'ল আপনি কৌশলটিতে ব্যবহারকারীকে ফিরিয়ে দিন। আমি কোডের সেই অংশটি পরিবর্তন করার চেষ্টা করছিলাম এবং এটি ভুল ছিল। কলব্যাকটি প্রত্যাশা করে false
যদি বৈধতা ব্যর্থ হয় এবং একটিobject
আপনি সফল হন তবে (বৈধ ব্যবহারকারী)।
এখন .... জেডাব্লুটি সংহত কিভাবে?
আপনার লগইন রুটে আপনাকে একটি সফল লেখক বা একটি ব্যর্থ একটি পরিচালনা করতে হবে। এবং এটি এখানে আপনার JWT টোকেন সৃষ্টি যুক্ত করতে হবে add তাই ভালো:
(সেশনটি অক্ষম করার কথা মনে রাখবেন, অন্যথায় আপনাকে সিরিয়ালাইজ করতে হবে এবং ফাংশনগুলি ডিএসরিয়ালাইজ করতে হবে And এবং আপনি যদি সেশন চালিয়ে না চলে তবে আপনার প্রয়োজন নেই, আপনি যদি টোকেন ভিত্তিক লেখার ব্যবহার করছেন না)
পাসপোর্ট-স্থানীয় উদাহরণ থেকে: (JWT টোকেন যুক্ত)
app.post('/login', function(req, res, next) {
passport.authenticate('local', function(err, user, info) {
if (err) { return next(err) }
if (!user) {
return res.json(401, { error: 'message' });
}
var token = jwt.encode({ username: 'somedata'}, tokenSecret);
res.json({ token : token });
})(req, res, next);
});
আর এটাই! এখন আপনি যখন কল / লগইন এবং পোষ্টের ব্যবহারকারীর নাম এবং পাসওয়ার্ড (যা সর্বদা এসএসএল-এর উপরে থাকা উচিত) উপরের প্রথম কোড স্নিপেট আপনার প্রদত্ত ব্যবহারকারীর নাম ভিত্তিক কোনও ব্যবহারকারীর সন্ধান করার চেষ্টা করবে এবং তারপরে পাসওয়ার্ডটি মেলে তা পরীক্ষা করতে হবে (অবশ্যই আপনার প্রয়োজন হবে আপনার প্রয়োজন অনুসারে এটি পরিবর্তন করুন)।
এর পরে আপনার লগইন রুটটি কল করা হবে এবং সেখানে আপনি কোনও ত্রুটি বা বৈধ টোকেন ফিরিয়ে দেওয়ার যত্ন নিতে পারেন।
আশা করি এটি কারও সাহায্য করবে। এবং যদি আমি কোনও ভুল করে ফেলেছি বা কিছু ভুলে গেছি তবে আমাকে জানান।