0 امتیاز
قبل در برنامه نویسی توسط (1.1هزار امتیاز)

چگونه می توان برای Session در Play Framework زمان (Timeout) قرار داد؟

1 پاسخ

0 امتیاز
قبل توسط (1.1هزار امتیاز)

برای این کار من دو روش را پیشنهاد می کنم:

1- اگر از Cache API خود Play Framework برای ذخیره سازی session ها در سمت سرور استفاده می کنید، می توانید برای هر session که در cache ذخیره می کنید timeout تعریف کنید:

// Cache for 15 minutes
Cache.set("sessionId", sessionObj, 60 * 15);

2- اگر از قابلیت session که در PlayFramework وجود دارد (ذخیره در کوکی) استفاده می کنید می توانید با ذخیره یک time­stamp در session کاربر و چک کردن زمان آن، session timeout را شبیه سازی کنید:

        // see if user is logged in
        if (session("userId") == null)
            return null;
 
        // see if the session is expired
        String previousTick = session("userTime");
        if (previousTick != null && !previousTick.equals("")) {
            long previousT = Long.valueOf(previousTick);
            long currentT = new Date().getTime();
            long timeout = Long.valueOf(Play.application().configuration().getString("sessionTimeout")) * 1000 * 60;
            if ((currentT - previousT) > timeout) {
                // session expired
                session().clear();
                return null;
            }
        }
 
        // update time in session
        String tickString = Long.toString(new Date().getTime());
        session("userTime", tickString);

سوالات مشابه

0 امتیاز
2 پاسخ 569 بازدید
+1 امتیاز
1 پاسخ 806 بازدید
+1 امتیاز
1 پاسخ 336 بازدید
+1 امتیاز
1 پاسخ 342 بازدید
0 امتیاز
0 پاسخ 214 بازدید
0 امتیاز
1 پاسخ 268 بازدید
+1 امتیاز
1 پاسخ 821 بازدید
+1 امتیاز
1 پاسخ 447 بازدید
سوال شده 8 سال قبل در برنامه نویسی توسط java_ (778 امتیاز)
...