mirror of
https://jihulab.com/DGP-Studio/Snap.Hutao.git
synced 2025-11-19 21:02:53 +08:00
fix mihoyo login no login_ticket crash
This commit is contained in:
@@ -57,7 +57,12 @@ internal sealed partial class LoginMihoyoUserPage : Microsoft.UI.Xaml.Controls.P
|
|||||||
CoreWebView2CookieManager manager = WebView.CoreWebView2.CookieManager;
|
CoreWebView2CookieManager manager = WebView.CoreWebView2.CookieManager;
|
||||||
IReadOnlyList<CoreWebView2Cookie> cookies = await manager.GetCookiesAsync("https://user.mihoyo.com");
|
IReadOnlyList<CoreWebView2Cookie> cookies = await manager.GetCookiesAsync("https://user.mihoyo.com");
|
||||||
|
|
||||||
Cookie loginTicketCookie = Cookie.FromCoreWebView2Cookies(cookies);
|
Cookie webCookie = Cookie.FromCoreWebView2Cookies(cookies);
|
||||||
|
if (!webCookie.TryGetCookieToken(out Cookie? loginTicketCookie))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
Response<ListWrapper<NameToken>> multiTokenResponse = await Ioc.Default
|
Response<ListWrapper<NameToken>> multiTokenResponse = await Ioc.Default
|
||||||
.GetRequiredService<AuthClient>()
|
.GetRequiredService<AuthClient>()
|
||||||
.GetMultiTokenByLoginTicketAsync(loginTicketCookie, false)
|
.GetMultiTokenByLoginTicketAsync(loginTicketCookie, false)
|
||||||
|
|||||||
@@ -108,6 +108,23 @@ internal sealed partial class Cookie
|
|||||||
return new(cookieMap);
|
return new(cookieMap);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public bool TryGetLoginTicket([NotNullWhen(true)] out Cookie? cookie)
|
||||||
|
{
|
||||||
|
if (TryGetValue(LOGIN_TICKET, out string? loginTicket) && TryGetValue(LOGIN_UID, out string? loginUid))
|
||||||
|
{
|
||||||
|
cookie = new Cookie(new()
|
||||||
|
{
|
||||||
|
[LOGIN_TICKET] = loginTicket,
|
||||||
|
[LOGIN_UID] = loginUid,
|
||||||
|
});
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
cookie = null;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
public bool TryGetSToken(bool isOversea, [NotNullWhen(true)] out Cookie? cookie)
|
public bool TryGetSToken(bool isOversea, [NotNullWhen(true)] out Cookie? cookie)
|
||||||
{
|
{
|
||||||
return isOversea ? TryGetLegacySToken(out cookie) : TryGetSToken(out cookie);
|
return isOversea ? TryGetLegacySToken(out cookie) : TryGetSToken(out cookie);
|
||||||
|
|||||||
Reference in New Issue
Block a user