Skip to content
This repository has been archived by the owner on Dec 20, 2023. It is now read-only.

Commit

Permalink
修复登录情况下个人主页空白问题
Browse files Browse the repository at this point in the history
  • Loading branch information
Oceanlzj committed May 16, 2023
1 parent 0f677fd commit 4f637cb
Show file tree
Hide file tree
Showing 5 changed files with 16 additions and 11 deletions.
4 changes: 2 additions & 2 deletions src/Lib/Lib.Implementation/AccountProvider/AccountProvider.cs
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,7 @@ public async Task<UserSpaceView> GetUserSpaceInformationAsync(string userId)
{ Query.VMid, userId },
};

var request = await _httpProvider.GetRequestMessageAsync(HttpMethod.Get, Account.Space, queryParameters);
var request = await _httpProvider.GetRequestMessageAsync(HttpMethod.Get, Account.Space, queryParameters, forceNoToken: true);
var response = await _httpProvider.SendAsync(request);
var result = await _httpProvider.ParseAsync<ServerResponse<UserSpaceResponse>>(response);
var accInfo = _userAdapter.ConvertToAccountInformation(result.Data.User, AvatarSize.Size96);
Expand All @@ -144,7 +144,7 @@ public async Task<VideoSet> GetUserSpaceVideoSetAsync(string userId)
{ Query.Order, "pubdate" },
};

var request = await _httpProvider.GetRequestMessageAsync(HttpMethod.Get, Account.VideoCursor, queryParameters);
var request = await _httpProvider.GetRequestMessageAsync(HttpMethod.Get, Account.VideoCursor, queryParameters, forceNoToken: true);
var response = await _httpProvider.SendAsync(request);
var result = await _httpProvider.ParseAsync<ServerResponse<UserSpaceVideoSet>>(response);
var data = _videoAdapter.ConvertToVideoSet(result.Data);
Expand Down
5 changes: 3 additions & 2 deletions src/Lib/Lib.Implementation/HttpProvider/HttpProvider.cs
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,8 @@ public TimeSpan OverallTimeout
bool needToken = true,
string additionalQuery = "",
bool needCookie = false,
bool needAppKey = false)
bool needAppKey = false,
bool forceNoToken = false)
{
HttpRequestMessage requestMessage;

Expand All @@ -94,7 +95,7 @@ public TimeSpan OverallTimeout
}
else if (method == HttpMethod.Get || method == HttpMethod.Delete)
{
var query = await _authenticationProvider.GenerateAuthorizedQueryStringAsync(queryParams, clientType, needToken);
var query = await _authenticationProvider.GenerateAuthorizedQueryStringAsync(queryParams, clientType, needToken, forceNoToken);
if (!string.IsNullOrEmpty(additionalQuery))
{
query += $"&{additionalQuery}";
Expand Down
6 changes: 4 additions & 2 deletions src/Lib/Lib.Interfaces/IAuthorizeProvider.cs
Original file line number Diff line number Diff line change
Expand Up @@ -34,17 +34,19 @@ public interface IAuthorizeProvider
/// <param name="queryParameters">请求所需的查询参数.</param>
/// <param name="clientType">请求需要模拟的客户端类型.</param>
/// <param name="needToken">是否需要令牌.</param>
/// <param name="forceNoToken">是否强制不需要令牌.</param>
/// <returns>包含授权验证的查询字符串.</returns>
Task<string> GenerateAuthorizedQueryStringAsync(Dictionary<string, string> queryParameters, RequestClientType clientType, bool needToken = true);
Task<string> GenerateAuthorizedQueryStringAsync(Dictionary<string, string> queryParameters, RequestClientType clientType, bool needToken = true, bool forceNoToken = false);

/// <summary>
/// 获取包含授权码的查询字典.
/// </summary>
/// <param name="queryParameters">请求所需的查询参数.</param>
/// <param name="clientType">请求需要模拟的客户端类型.</param>
/// <param name="needToken">是否需要访问令牌.</param>
/// <param name="forceNoToken">是否强制不需要令牌.</param>
/// <returns>包含授权验证码的查询字典.</returns>
Task<Dictionary<string, string>> GenerateAuthorizedQueryDictionaryAsync(Dictionary<string, string> queryParameters, RequestClientType clientType, bool needToken = true);
Task<Dictionary<string, string>> GenerateAuthorizedQueryDictionaryAsync(Dictionary<string, string> queryParameters, RequestClientType clientType, bool needToken = true, bool forceNoToken = false);

/// <summary>
/// 获取包含授权码的查询字典,无token且先加盐.
Expand Down
3 changes: 2 additions & 1 deletion src/Lib/Lib.Interfaces/IHttpProvider.cs
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,9 @@ public interface IHttpProvider
/// <param name="additionalQuery">附加查询参数.</param>
/// <param name="needCookie">是否需要cookie.</param>
/// <param name="needAppKey">是否需要appKey.</param>
/// <param name="forceNoToken">是否强制不AccessKey.</param>
/// <returns><see cref="HttpRequestMessage"/>.</returns>
Task<HttpRequestMessage> GetRequestMessageAsync(HttpMethod method, string url, Dictionary<string, string> queryParams = null, RequestClientType type = RequestClientType.Android, bool needToken = false, string additionalQuery = "", bool needCookie = false, bool needAppKey = false);
Task<HttpRequestMessage> GetRequestMessageAsync(HttpMethod method, string url, Dictionary<string, string> queryParams = null, RequestClientType type = RequestClientType.Android, bool needToken = false, string additionalQuery = "", bool needCookie = false, bool needAppKey = false, bool forceNoToken = false);

/// <summary>
/// 获取 <see cref="HttpRequestMessage"/>.
Expand Down
9 changes: 5 additions & 4 deletions src/Lib/SignIn.Uwp/AuthorizeProvider/AuthorizeProvider.cs
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,8 @@ protected set
public async Task<Dictionary<string, string>> GenerateAuthorizedQueryDictionaryAsync(
Dictionary<string, string> queryParameters,
RequestClientType clientType,
bool needToken = false)
bool needToken = false,
bool forcrNoToken = false)
{
if (queryParameters == null)
{
Expand All @@ -79,7 +80,7 @@ protected set
GenerateAppKey(queryParameters, clientType);

var token = string.Empty;
if (await IsTokenValidAsync())
if (await IsTokenValidAsync() && !forcrNoToken)
{
token = _tokenInfo.AccessToken;
}
Expand Down Expand Up @@ -123,9 +124,9 @@ protected set
}

/// <inheritdoc/>
public async Task<string> GenerateAuthorizedQueryStringAsync(Dictionary<string, string> queryParameters, RequestClientType clientType, bool needToken = true)
public async Task<string> GenerateAuthorizedQueryStringAsync(Dictionary<string, string> queryParameters, RequestClientType clientType, bool needToken = true, bool forcrNoToken = false)
{
var parameters = await GenerateAuthorizedQueryDictionaryAsync(queryParameters, clientType, needToken);
var parameters = await GenerateAuthorizedQueryDictionaryAsync(queryParameters, clientType, needToken, forcrNoToken);
var queryList = parameters.Select(p => $"{p.Key}={p.Value}").ToList();
queryList.Sort();
var query = string.Join('&', queryList);
Expand Down

0 comments on commit 4f637cb

Please sign in to comment.