mirror of
https://github.com/dani-garcia/vaultwarden.git
synced 2026-04-15 14:31:31 -06:00
Merge f2e57eb94f into bb549986e6
This commit is contained in:
commit
d533285bad
@ -131,7 +131,7 @@ async fn login(
|
||||
login_result
|
||||
}
|
||||
|
||||
// Return Status::Unauthorized to trigger logout
|
||||
// Return an OAuth2-compliant invalid_grant error to trigger client logout on refresh failure
|
||||
async fn _refresh_login(data: ConnectData, conn: &DbConn, ip: &ClientIp) -> JsonResult {
|
||||
// Extract token
|
||||
let refresh_token = match data.refresh_token {
|
||||
@ -147,7 +147,20 @@ async fn _refresh_login(data: ConnectData, conn: &DbConn, ip: &ClientIp) -> Json
|
||||
// let members = Membership::find_confirmed_by_user(&user.uuid, conn).await;
|
||||
match auth::refresh_tokens(ip, &refresh_token, data.client_id, conn).await {
|
||||
Err(err) => {
|
||||
err_code!(format!("Unable to refresh login credentials: {}", err.message()), Status::Unauthorized.code)
|
||||
// Return an OAuth2-compliant `invalid_grant` error response so that
|
||||
// Bitwarden clients recognize the expired/invalid refresh token and
|
||||
// prompt the user to re-authenticate. See: #7060
|
||||
let msg = format!("Unable to refresh login credentials: {}", err.message());
|
||||
error!("{msg}");
|
||||
let result = json!({
|
||||
"error": "invalid_grant",
|
||||
"error_description": msg,
|
||||
"ErrorModel": {
|
||||
"Message": msg,
|
||||
"Object": "error"
|
||||
}
|
||||
});
|
||||
return Err(("invalid_grant", result).into());
|
||||
}
|
||||
Ok((mut device, auth_tokens)) => {
|
||||
// Save to update `device.updated_at` to track usage and toggle new status
|
||||
|
||||
Loading…
Reference in New Issue
Block a user