(
state: &Arc<crate::app_state::InnerAppState>,
logged_in_session: &LoggedInSession,
)
| 112 | } |
| 113 | |
| 114 | async fn check_broken_session( |
| 115 | state: &Arc<crate::app_state::InnerAppState>, |
| 116 | logged_in_session: &LoggedInSession, |
| 117 | ) -> bool { |
| 118 | if !logged_in_session.api_client.is_broken() { |
| 119 | return false; |
| 120 | } |
| 121 | |
| 122 | // the refresh token is invalid, the user needs to re-authorize; |
| 123 | // drop the client and log them out everywhere |
| 124 | let user_id = logged_in_session.session.user.id; |
| 125 | state.oauth_api_client_cache.del(user_id); |
| 126 | state |
| 127 | .db |
| 128 | .del_all_sessions(user_id) |
| 129 | .await |
| 130 | .map_err(|err| error!(%err, "failed clearing sessions from broken token")) |
| 131 | .ok(); |
| 132 | |
| 133 | true |
| 134 | } |
| 135 | |
| 136 | #[derive(Clone)] |
| 137 | pub struct RequireAuthLayer {} |
no test coverage detected