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 پاسخ 713 بازدید
+1 امتیاز
1 پاسخ 923 بازدید
+1 امتیاز
1 پاسخ 453 بازدید
+1 امتیاز
1 پاسخ 512 بازدید
0 امتیاز
0 پاسخ 299 بازدید
0 امتیاز
1 پاسخ 377 بازدید
+1 امتیاز
1 پاسخ 1.2هزار بازدید
+1 امتیاز
1 پاسخ 597 بازدید
سوال شده 8 سال قبل در برنامه نویسی توسط java_ (778 امتیاز)
...