Lo haces por sesion. Guardas el tiempo que llevas en la sesion y lo compruebas con Javascript.
Yo tenia un ejemplo pero no lo encuentro.
Aqui tienes como hacer un timeout con javascript
:
http://www.gamarod.com.ar/javascript/159.asp
El problema seria cuando haces acciones y vas a servidor que se reiniciaría el timeout, ahí es donde tienes que meter un tiempo en una variable de sesion que guarde el tiempo inicial y que sirva de partida para el javascript.
Un saludo