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 پاسخ 701 بازدید
+1 امتیاز
1 پاسخ 916 بازدید
+1 امتیاز
1 پاسخ 444 بازدید
+1 امتیاز
1 پاسخ 499 بازدید
0 امتیاز
0 پاسخ 293 بازدید
0 امتیاز
1 پاسخ 369 بازدید
+1 امتیاز
1 پاسخ 1.2هزار بازدید
+1 امتیاز
1 پاسخ 585 بازدید
سوال شده 8 سال قبل در برنامه نویسی توسط java_ (778 امتیاز)
...