এক্সপ্রেস 4.0, বিজোড় সতর্কতা বার্তা সহ এক্সপ্রেস-সেশন


105

আমি এক্সপ্রেস 4.x ব্যবহার করে একটি নোডেজ অ্যাপ্লিকেশন স্থাপনের মাধ্যমে কাজ করার চেষ্টা করছি। মিডওয়্যার-অপসারণ সংক্রান্ত সমস্যাগুলির পরে হোঁচট খাওয়ার পরে, অবশেষে আমি এটি কার্যকর করেছিলাম।

তবে নিম্নলিখিত কোডের লাইনে কয়েকটি সতর্কতা বার্তা ছিল:

app.use(session({secret: '<mysecret>'})

এই সতর্কতাগুলি ছিল:

Sun, 29 Jun 2014 12:45:10 GMT express-session deprecated pass resave option; default value will change at lib\config\express.js:55:11

Sun, 29 Jun 2014 12:45:10 GMT express-session deprecated pass saveUninitialized option; default value will change at lib\config\express.js:55:11

ডকুমেন্টেশনে, পুনর্নির্মাণ এবং সেভউইনিটালাইজডের জন্য ডিফল্ট মানগুলি সত্য।

সুতরাং, পড়তে কোড পরিবর্তন

app.use(session({secret: '<mysecret>', 
                 saveUninitialized: true,
                 resave: true}));

সতর্কতা থেকে মুক্তি পেয়েছি।

সুতরাং, প্রশ্নের বিন্দুতে পেতে:

আমি কেন এই মানগুলি ডিফল্ট মান হিসাবে পাস করতে হবে এবং কেন আমাকে অন্য বিকল্পগুলিতে পাস করতে হবে না?


1
কারণ এই ডিফল্ট মানগুলি পরিবর্তিত হবে এবং যখন তারা তা করে, আপনি এমন ত্রুটিগুলি এড়াতে পারবেন যা স্পষ্টভাবে মিডলওয়্যারগুলিতে
এগুলি

12
আমি তাদের পছন্দ করি যে তারা কীভাবে সহায়তার সাথে আপনাকে ডিফল্ট বিকল্পগুলি কী তা বলবে না
ব্র্যাড

4
resaveএবং উভয়ই saveUnitializedবুলিয়ান যা ডিফল্ট true১.7.২: github.com/expressjs/session
সিএফএস

1
@ সিএফএস: এটি হওয়া উচিত saveUninitialized। আপনি পোস্ট করেছেন তা অনুলিপি করেছিলাম এবং হুঁশিয়ারিটি যেটি চলেছে না তা সনাক্ত করার চেষ্টা করে 45 টি পুঁজির অপচয় করছে was পরে আমি বুঝতে পারলাম এখানে একটি বানান ভুল ছিল। lol: ডি
আদিত্যপারাব

1
ম্যভারিকের নষ্ট সময় সম্পর্কে দুঃখিত :) দুর্ভাগ্যক্রমে, মন্তব্যটি সম্পাদনা করার জন্য আমার পক্ষে অনেক পুরানো, অন্যথায় আমি আমার টাইপটি ঠিক করেছি: /
সিএফএস

উত্তর:


68

সতর্কতা যেমন বলেছে, ডিফল্ট মানগুলি পরিবর্তিত হবে তাই তারা নিশ্চিত করতে চায় যে মানগুলি এখনই সুস্পষ্টভাবে সেট করে, যখন ডিফল্ট পরিবর্তন হয় (অদূর ভবিষ্যতে) আপনি অপ্রত্যাশিত আচরণে চলে যাবেন না।


ওহ, তাই এই দুটি পরামিতি জন্য ডিফল্ট মান কিছু সময় পরিবর্তন করতে চলেছে? যে আরো অনেক জ্ঞান করে তোলে! ধন্যবাদ।
jmls

3
কিংবদন্তি এটি আছে, এখনও শীঘ্রই পরিবর্তন হতে চলেছে :)
Qcom

2
ভবিষ্যত থেকে এখানে। এখনও শীঘ্রই পরিবর্তন হতে চলেছে :)
কম্পোনিয়া

53

আমি সমস্যাটি দরকারী বলে মনে করেছি:

https://github.com/expressjs/session/issues/56

app.use(session({
    secret: cookie_secret,
    resave: true,
    saveUninitialized: true
}));

1
কোড আকারে প্রশ্নের জবাব দেওয়ার জন্য ধন্যবাদ ... এখানে এতটা যথেষ্ট দেখতে পাবেন না
ডেভ

খুশী হলাম। এছাড়াও, আমি ডক্সটি একবার দেখার পরামর্শ দিই। আমার ক্ষেত্রে এগুলি সেট করা ভাল ছিল false( github.com/expressjs/session#resave , github.com/expressjs/session#saveuninitialized )।
জুয়ানরা

5

এটিকে মন্তব্য হিসাবে যুক্ত করার মতো পর্যাপ্ত পরিমাণে আমার কাছে নেই। বেনের উত্তরের আমার ডিফল্ট মানের জন্য আমি এটি যুক্ত করেছি।

secret: process.env.SESSION_SECRET || '<mysecret>',

2
app.use(session({
  cookieName: 'session',
  secret: 'eg[isfd-8yF9-7w2315df{}+Ijsli;;to8',
  duration: 30 * 60 * 1000,
  activeDuration: 5 * 60 * 1000,
  httpOnly: true,
  secure: true,
  ephemeral: true,
  resave: true,
  saveUninitialized: true
}));

আমার জন্য কাজ করে, সম্ভবত সেশনের জন্য কিছু অতিরিক্ত সেটিংস দরকার ছিল। ধন্যবাদ
মার্টিনহাজনি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.