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 پاسخ 857 بازدید
+1 امتیاز
1 پاسخ 1.0هزار بازدید
+1 امتیاز
1 پاسخ 549 بازدید
+1 امتیاز
1 پاسخ 654 بازدید
0 امتیاز
0 پاسخ 381 بازدید
0 امتیاز
1 پاسخ 489 بازدید
+1 امتیاز
1 پاسخ 1.6هزار بازدید
+1 امتیاز
1 پاسخ 743 بازدید
سوال شده 9 سال قبل در برنامه نویسی توسط java_ (778 امتیاز)
...