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 پاسخ 835 بازدید
+1 امتیاز
1 پاسخ 1.0هزار بازدید
+1 امتیاز
1 پاسخ 530 بازدید
+1 امتیاز
1 پاسخ 621 بازدید
0 امتیاز
0 پاسخ 366 بازدید
0 امتیاز
1 پاسخ 462 بازدید
+1 امتیاز
1 پاسخ 1.5هزار بازدید
+1 امتیاز
1 پاسخ 718 بازدید
سوال شده 9 سال قبل در برنامه نویسی توسط java_ (778 امتیاز)
...