मैं जानना चाहता हूं कि उपयोगकर्ता का सत्र सर्वर की ओर समाप्त हो गया है और ऐसा होने पर कुछ निष्पादित करता है। मैं यह कैसे करु?मैं प्ले फ्रेमवर्क में सत्र टाइमआउट या समाप्ति कैसे संभाल सकता हूं?
मैं जावा और प्ले फ्रेमवर्क 2.2.1 का उपयोग कर रहा हूं।
मैं जानना चाहता हूं कि उपयोगकर्ता का सत्र सर्वर की ओर समाप्त हो गया है और ऐसा होने पर कुछ निष्पादित करता है। मैं यह कैसे करु?मैं प्ले फ्रेमवर्क में सत्र टाइमआउट या समाप्ति कैसे संभाल सकता हूं?
मैं जावा और प्ले फ्रेमवर्क 2.2.1 का उपयोग कर रहा हूं।
प्रत्येक प्रमाणीकृत अनुरोध पर Play's built-in authentication का उपयोग करते समय, अद्यतन समाप्ति के साथ सत्र में टाइमस्टैम्प स्टोर करें।
फिर, प्रमाणीकरणकर्ता में, सत्र समाप्ति को मान्य करें।
लेख How to implement a Session Timeout in Play Framework 2 इस उदाहरण प्रदान करता है:
public class Secured extends Security.Authenticator {
public static final String UNAUTHENTICATED = "unauthenticated";
public static User getLoggedInUser() {
if (session("userId") == null)
return null;
return User.findById(Long.parseLong(session("userId")));
}
public static String getLoggedInUsername() {
if (session("userId") == null)
return null;
return User.findById(Long.parseLong(session("userId"))).getUsername();
}
@Override
public String getUsername(Http.Context ctx) {
// 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);
return User.findById(Long.parseLong(session("userId"))).getUsername();
}
}
इस आवेदन के विन्यास फाइल (application.conf
) में ही मिनटों में एक sessionTimeout
मूल्य की आवश्यकता है।
देर से उत्तर के लिए खेद है, मैं इस ASAP पर वापस आऊंगा और देख सकता हूं कि यह काम करता है या नहीं। बहुत सराहना की। – supertonsky
मैं 'ctx.session() का उपयोग करने का सुझाव दूंगा। (" UserTime ", टिकस्ट्रिंग) को प्रतिस्थापित करें;' 'getUsername' के शरीर में – malloc4k
'सत्र (स्ट्रिंग)' में कौन सा पैकेज है? –
सत्र टाइमआउट
जांच इस http: //www.poornerd.com/2014/04/01/how-to-implement-a-session-timeout-in-play-framework-2/ – immutable