@@ -135,6 +135,16 @@ static const char * const canned_js =
135135 "c+='<strong class=\"lws-login-identity\">'+st.identity+'</strong><br>';"
136136 "c+=a+' <a class=\"lws-login-link lws-login-logout\" href=\"'+u+'\">Logout</a>';"
137137 "if(!st.has_grant&&!st.is_admin)c+='<div class=\"lws-login-err\">login lacks grant</div><br>';"
138+ "if(st.exp){"
139+ "var n=Date.now()/1000;"
140+ "var m=st.exp-n;"
141+ "if(m>0&&m<86400){"
142+ "setTimeout(function(){"
143+ "var s=st.login_url.split('redirect_uri=')[0]+'redirect_uri='+encodeURIComponent(window.location.href);"
144+ "window.location.href=s;"
145+ "},(m-60)*1000);"
146+ "}"
147+ "}"
138148 "}else{"
139149 "var s=st.login_url.split('redirect_uri=')[0]+'redirect_uri='+encodeURIComponent(window.location.href);"
140150 "c+='<div class=\"lws-login-mb\">Not logged in</div>';"
@@ -984,8 +994,8 @@ callback_lws_login(struct lws *wsi, enum lws_callback_reasons reason,
984994 const char * sub = lws_jwt_auth_get_sub (pss -> ja );
985995 int is_admin = lws_jwt_auth_query_grant (pss -> ja , "*" ) >= 1 ;
986996 int has_grant = lws_jwt_auth_query_grant (pss -> ja , service_name ) >= vhd -> min_grant_level ;
987- lws_snprintf (pl , sizeof (pl ), "{\"logged_in\":1,\"has_grant\":%d,\"identity\":\"%s\",\"auth_server_url\":\"%s\",\"login_url\":\"%s\",\"is_admin\":%d}" ,
988- has_grant , sub ? sub : "Unknown" , vhd -> auth_server_url , dest , is_admin );
997+ lws_snprintf (pl , sizeof (pl ), "{\"logged_in\":1,\"exp\":%llu,\" has_grant\":%d,\"identity\":\"%s\",\"auth_server_url\":\"%s\",\"login_url\":\"%s\",\"is_admin\":%d}" ,
998+ ( unsigned long long ) lws_jwt_auth_get_exp ( pss -> ja ), has_grant , sub ? sub : "Unknown" , vhd -> auth_server_url , dest , is_admin );
989999 } else
9901000 lws_snprintf (pl , sizeof (pl ), "{\"logged_in\":0,\"login_url\":\"%s\"}" , dest );
9911001
0 commit comments