"clean" 不记名令牌的更好方法
better way to "clean" Bearer token
我正在从我当前的请求中添加一个 auth header 令牌,这样我就可以点击另一个 API,但是当我添加 AuthenticationHeaderValue
方案(不能为空)时,它在令牌中复制了“Bearer”...所以我只是调用 Replace() 让它工作...
var rawToken = this.HttpContext.Request.Headers["Authorization"];
var cleanedToken = rawToken.ToString().Replace("Bearer ", "", StringComparison.OrdinalIgnoreCase);
requestMessage.Headers.Authorization = new AuthenticationHeaderValue("Bearer", cleanedToken);
HttpResponseMessage response = await httpClient.SendAsync(requestMessage).ConfigureAwait(false);
但是对 Replace() 的调用感觉像是一个肮脏的 hack。是否有 battle-tested 库方法来处理此问题?
使用 AuthenticationHeaderValue.Parse(rawToken)
应该可以完成这项工作,因为它会自动从原始值中提取“Bearer”方案(或任何其他方案)和令牌,无需显式传递它。
我正在从我当前的请求中添加一个 auth header 令牌,这样我就可以点击另一个 API,但是当我添加 AuthenticationHeaderValue
方案(不能为空)时,它在令牌中复制了“Bearer”...所以我只是调用 Replace() 让它工作...
var rawToken = this.HttpContext.Request.Headers["Authorization"];
var cleanedToken = rawToken.ToString().Replace("Bearer ", "", StringComparison.OrdinalIgnoreCase);
requestMessage.Headers.Authorization = new AuthenticationHeaderValue("Bearer", cleanedToken);
HttpResponseMessage response = await httpClient.SendAsync(requestMessage).ConfigureAwait(false);
但是对 Replace() 的调用感觉像是一个肮脏的 hack。是否有 battle-tested 库方法来处理此问题?
使用 AuthenticationHeaderValue.Parse(rawToken)
应该可以完成这项工作,因为它会自动从原始值中提取“Bearer”方案(或任何其他方案)和令牌,无需显式传递它。