Improve handling of already-logged-in cases in provisioning API
This commit is contained in:
parent
205e6a9751
commit
825c8ff062
1 changed files with 17 additions and 2 deletions
|
@ -320,8 +320,23 @@ func (prov *ProvisioningAPI) GoogleLoginStart(w http.ResponseWriter, r *http.Req
|
|||
|
||||
log := hlog.FromRequest(r)
|
||||
|
||||
if user.IsLoggedIn() {
|
||||
jsonResponse(w, http.StatusOK, LoginResponse{Status: "success", ErrCode: "already logged in"})
|
||||
if user.IsLoggedIn() && user.switchedToGoogleLogin {
|
||||
log.Info().Msg("Logging out before starting new Google login")
|
||||
user.Logout(status.BridgeState{StateEvent: status.StateLoggedOut}, false)
|
||||
} else if user.IsLoggedIn() {
|
||||
log.Warn().Msg("User is already logged in, ignoring new login request")
|
||||
if !user.phoneResponding {
|
||||
jsonResponse(w, http.StatusConflict, LoginResponse{
|
||||
Error: "You're already logged in, but the Google Messages app on your phone is not responding",
|
||||
ErrCode: "already logged in",
|
||||
})
|
||||
} else {
|
||||
jsonResponse(w, http.StatusConflict, LoginResponse{
|
||||
Status: "success",
|
||||
Error: "You're already logged in",
|
||||
ErrCode: "already logged in",
|
||||
})
|
||||
}
|
||||
return
|
||||
}
|
||||
var req ReqGoogleLoginStart
|
||||
|
|
Loading…
Reference in a new issue