একটি নতুন নোড.জেএস প্রকল্পের জন্য যা আমি কাজ করছি, আমি কুকি ভিত্তিক সেশন পদ্ধতির কাছ থেকে স্যুইচ করার কথা ভাবছি (এর অর্থ, একটি ব্যবহারকারীর ব্রাউজারে ব্যবহারকারী সেশন সমেত একটি মূল-মান স্টোরে একটি আইডি সঞ্চয় করে রাখছি) টোকন-ভিত্তিক অধিবেশন পদ্ধতির কাছে (কী-মান স্টোর নেই) জেএসএন ওয়েব টোকেন্স (jwt) ব্যবহার করে।
প্রকল্পটি এমন একটি গেম যা সকেট.আইও ব্যবহার করে - টোকন-ভিত্তিক সেশনটি এমন দৃশ্যে কার্যকর হবে যেখানে একক সেশনে একাধিক যোগাযোগের চ্যানেল থাকবে (ওয়েব এবং সকেট.আইও)
কেউ কীভাবে jwt অ্যাপ্রোচ ব্যবহার করে সার্ভার থেকে টোকেন / সেশন অবৈধকরণ সরবরাহ করবে?
এই ধরণের উপমা দিয়ে আমার কী সাধারণ (বা অস্বাভাবিক) সমস্যাগুলি / আক্রমণগুলি সন্ধান করা উচিত তাও আমি বুঝতে চেয়েছিলাম। উদাহরণস্বরূপ, যদি এই দৃষ্টান্তটি সেশন স্টোর / কুকি-ভিত্তিক পদ্ধতির মতো একই / বিভিন্ন ধরণের আক্রমণে ঝুঁকিপূর্ণ হয়।
সুতরাং, বলুন আমার কাছে নিম্নলিখিতগুলি রয়েছে ( এটি এবং এটি থেকে অভিযোজিত ):
সেশন স্টোর লগইন:
app.get('/login', function(request, response) {
var user = {username: request.body.username, password: request.body.password };
// Validate somehow
validate(user, function(isValid, profile) {
// Create session token
var token= createSessionToken();
// Add to a key-value database
KeyValueStore.add({token: {userid: profile.id, expiresInMinutes: 60}});
// The client should save this session token in a cookie
response.json({sessionToken: token});
});
}
টোকেন ভিত্তিক লগইন:
var jwt = require('jsonwebtoken');
app.get('/login', function(request, response) {
var user = {username: request.body.username, password: request.body.password };
// Validate somehow
validate(user, function(isValid, profile) {
var token = jwt.sign(profile, 'My Super Secret', {expiresInMinutes: 60});
response.json({token: token});
});
}
-
সেশন স্টোর পদ্ধতির জন্য একটি লগআউট (বা অবৈধ) করার জন্য নির্দিষ্ট টোকেন সহ কীভ্যালিউস্টোর ডাটাবেসের আপডেট দরকার।
দেখে মনে হচ্ছে টোকেন ভিত্তিক পদ্ধতির মধ্যে এই জাতীয় ব্যবস্থাটির অস্তিত্ব থাকবে না কারণ টোকেনে নিজেই মূল-মূল্যের স্টোরটিতে এমন তথ্য উপস্থিত থাকবে।
isRevoked
বিকল্পটি একবার দেখে নিতে পারেন বা একই কার্যকারিতাটি প্রতিলিপি দেওয়ার চেষ্টা করতে পারেন। github.com/auth0/express-jwt#revused-tokens