Fix authentication loss not handled correctly

This handles the case where on initial API connection, the server
responds with an `Unauthorized` response. It doesn't perform this same
checking/handling on every API request, which is probably what we want
eventually.

Opting to not address the full issue because I know this is going to be
a long one (see
05c50c0f6c/osu.Game/Online/API/APIAccess.cs (L233)).
This commit is contained in:
Dean Herbert 2021-07-23 18:58:22 +09:00
parent 05c50c0f6c
commit 17168b8137
1 changed files with 11 additions and 0 deletions

View File

@ -148,6 +148,16 @@ private void run()
var userReq = new GetUserRequest();
userReq.Failure += ex =>
{
if (ex.InnerException is WebException webException && webException.Message == @"Unauthorized")
{
log.Add(@"Login no longer valid");
Logout();
}
else
failConnectionProcess();
};
userReq.Success += u =>
{
localUser.Value = u;
@ -167,6 +177,7 @@ private void run()
// getting user's friends is considered part of the connection process.
var friendsReq = new GetFriendsRequest();
friendsReq.Failure += _ => failConnectionProcess();
friendsReq.Success += res =>
{
friends.AddRange(res);