I don't know what I'm doing anymore
This commit is contained in:
parent
ea9cc32534
commit
8fdee0cb67
17 changed files with 342 additions and 116 deletions
|
@ -7,6 +7,8 @@ using System.Collections.Generic;
|
|||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Net.Http;
|
||||
using System.Net.Http.Headers;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Sledgemapper
|
||||
|
@ -26,7 +28,7 @@ namespace Sledgemapper
|
|||
.WithAutomaticReconnect()
|
||||
|
||||
.WithUrl("http://localhost:5000/SledgemapperHub", options =>
|
||||
{
|
||||
{
|
||||
options.AccessTokenProvider = () => Task.FromResult(_authenticateResponse.Token);
|
||||
})
|
||||
|
||||
|
@ -35,16 +37,8 @@ namespace Sledgemapper
|
|||
|
||||
|
||||
|
||||
var httpClientHandler = new HttpClientHandler();
|
||||
|
||||
//if (myConfigurationService.VerifySslCertificate == false)
|
||||
//{
|
||||
httpClientHandler.ServerCertificateCustomValidationCallback =
|
||||
(message, certificate, chain, sslPolicyErrors) => true;
|
||||
//}
|
||||
|
||||
Api = RestService.For<IMapApi>(
|
||||
new HttpClient(httpClientHandler)
|
||||
new HttpClient(new AuthenticatedHttpClientHandler(GetToken))
|
||||
{
|
||||
BaseAddress = new Uri("http://localhost:5000")
|
||||
}
|
||||
|
@ -59,7 +53,7 @@ namespace Sledgemapper
|
|||
|
||||
Connection.On<Player>("PlayerUpdate", (player) =>
|
||||
{
|
||||
var p = SessionData.Players.FirstOrDefault(m => m.ConnectionId == player.ConnectionId);
|
||||
var p = SessionData.Players.FirstOrDefault(m => m.UserId == player.UserId);
|
||||
if (p != null)
|
||||
{
|
||||
p.Position = player.Position;
|
||||
|
@ -101,7 +95,7 @@ namespace Sledgemapper
|
|||
|
||||
Connection.On<Player>("NewPlayer", (player) =>
|
||||
{
|
||||
var p = SessionData.Players.FirstOrDefault(m => m.ConnectionId == player.ConnectionId);
|
||||
var p = SessionData.Players.FirstOrDefault(m => m.UserId == player.UserId);
|
||||
if (p is null)
|
||||
{
|
||||
SessionData.Players.Add(player);
|
||||
|
@ -114,6 +108,11 @@ namespace Sledgemapper
|
|||
});
|
||||
}
|
||||
|
||||
private Task<string> GetToken()
|
||||
{
|
||||
return Task.FromResult(_authenticateResponse.Token);
|
||||
}
|
||||
|
||||
public async Task<bool> Register(RegisterModel registerModel)
|
||||
{
|
||||
var result = await Api.Register(registerModel);
|
||||
|
@ -173,4 +172,34 @@ namespace Sledgemapper
|
|||
|
||||
}
|
||||
}
|
||||
|
||||
class AuthenticatedHttpClientHandler : HttpClientHandler
|
||||
{
|
||||
private readonly Func<Task<string>> getToken;
|
||||
|
||||
public AuthenticatedHttpClientHandler(Func<Task<string>> getToken)
|
||||
{
|
||||
if (getToken == null) throw new ArgumentNullException(nameof(getToken));
|
||||
this.getToken = getToken;
|
||||
|
||||
//if (myConfigurationService.VerifySslCertificate == false)
|
||||
//{
|
||||
ServerCertificateCustomValidationCallback =
|
||||
(message, certificate, chain, sslPolicyErrors) => true;
|
||||
//}
|
||||
}
|
||||
|
||||
protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
|
||||
{
|
||||
// See if the request has an authorize header
|
||||
var auth = request.Headers.Authorization;
|
||||
if (auth != null)
|
||||
{
|
||||
var token = await getToken().ConfigureAwait(false);
|
||||
request.Headers.Authorization = new AuthenticationHeaderValue(auth.Scheme, token);
|
||||
}
|
||||
|
||||
return await base.SendAsync(request, cancellationToken).ConfigureAwait(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue