Support #3909

Best Way to Keep a Session Between Tabs

Added by Isaac Lascasas over 7 years ago. Updated over 7 years ago.

Target version:
Start date:
Due date:
% Done:


Estimated time:


Hello, I have been learning Wt for some months now. So far I'm very satisfied with the library, I appreciate a lot your efforts. Today I want to ask you about a simple way to deal with multitab/multiwindow browsking. My authentication method requires a custom but quite simple mechanism and I want to hear your opinions about my implementation and concerns.

My webapp requests a user name from a 3rd party system and sends a request code via PM to that user within that app (as in a typical phone/sms verification). Then the user will read the code in the 3rd party app and come back to the Wt website to write the request code. If the IP and code are ok, I log the user.

I have two questions here, first is if your authentication module will help in this situation given that right now I store everything within MongoDB. And second is if just manually storing a cookie to track the session between the tabs and windows sounds like a viable solution given that the rest of the code (ui, session in just one tab, login and 3rd party app pm sending) is already working.

Also I want to let you know that my biggest source of confussion is the fact that the session object is inside the Dbo namespace. As you can imagine I just want to let the user open tabs and don't force him to relog and I think my webapp doesn't require ::Wt::Dbo for anything more at all so I wonder if I really have a reason to store stuff inside a sqlite, etc.

Thanks a lot.



Updated by Koen Deforche over 7 years ago


To me it seems that your approach is fine. You could use Wt::Auth but not with it's default Wt::Dbo storage (you can reimplement Wt::Auth::AbstractUserDatabase to use a different storage option, which could be MongoDB.

But there is not necessarily a lot of value in Wt::Auth only to generate and store a random id for a cookie to track a user across sessions.




Updated by Koen Deforche over 7 years ago

  • Status changed from New to Resolved
  • Assignee set to Koen Deforche

Updated by Isaac Lascasas over 7 years ago

Thanks for the quick response. This helps me a lot.



Updated by Koen Deforche over 7 years ago

  • Status changed from Resolved to Closed

Also available in: Atom PDF