Refactored TokenService into IdentityService.
This commit is contained in:
parent
96a1a55426
commit
bfdac24771
@ -1,8 +1,12 @@
|
||||
namespace eShopOnContainers.Core.Services.Identity
|
||||
using eShopOnContainers.Core.Models.Token;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace eShopOnContainers.Core.Services.Identity
|
||||
{
|
||||
public interface IIdentityService
|
||||
{
|
||||
string CreateAuthorizationRequest();
|
||||
string CreateLogoutRequest(string token);
|
||||
Task<UserToken> GetTokenAsync(string code);
|
||||
}
|
||||
}
|
@ -1,11 +1,22 @@
|
||||
using IdentityModel.Client;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Net;
|
||||
using System.Threading.Tasks;
|
||||
using eShopOnContainers.Core.Services.RequestProvider;
|
||||
using eShopOnContainers.Core.Models.Token;
|
||||
|
||||
namespace eShopOnContainers.Core.Services.Identity
|
||||
{
|
||||
public class IdentityService : IIdentityService
|
||||
{
|
||||
private readonly IRequestProvider _requestProvider;
|
||||
|
||||
public IdentityService(IRequestProvider requestProvider)
|
||||
{
|
||||
_requestProvider = requestProvider;
|
||||
}
|
||||
|
||||
public string CreateAuthorizationRequest()
|
||||
{
|
||||
// Create URI to authorization endpoint
|
||||
@ -40,5 +51,12 @@ namespace eShopOnContainers.Core.Services.Identity
|
||||
token,
|
||||
GlobalSetting.Instance.LogoutCallback);
|
||||
}
|
||||
|
||||
public async Task<UserToken> GetTokenAsync(string code)
|
||||
{
|
||||
string data = string.Format("grant_type=authorization_code&code={0}&redirect_uri={1}", code, WebUtility.UrlEncode(GlobalSetting.Instance.IdentityCallback));
|
||||
var token = await _requestProvider.PostAsync<UserToken>(GlobalSetting.Instance.TokenEndpoint, data, GlobalSetting.Instance.ClientId, GlobalSetting.Instance.ClientSecret);
|
||||
return token;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,10 +0,0 @@
|
||||
using eShopOnContainers.Core.Models.Token;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace eShopOnContainers.Core.Services.Token
|
||||
{
|
||||
public interface ITokenService
|
||||
{
|
||||
Task<UserToken> GetTokenAsync(string code);
|
||||
}
|
||||
}
|
@ -1,24 +0,0 @@
|
||||
using System.Net;
|
||||
using System.Threading.Tasks;
|
||||
using eShopOnContainers.Core.Services.RequestProvider;
|
||||
using eShopOnContainers.Core.Models.Token;
|
||||
|
||||
namespace eShopOnContainers.Core.Services.Token
|
||||
{
|
||||
public class TokenService : ITokenService
|
||||
{
|
||||
private readonly IRequestProvider _requestProvider;
|
||||
|
||||
public TokenService(IRequestProvider requestProvider)
|
||||
{
|
||||
_requestProvider = requestProvider;
|
||||
}
|
||||
|
||||
public async Task<UserToken> GetTokenAsync(string code)
|
||||
{
|
||||
string data = string.Format("grant_type=authorization_code&code={0}&redirect_uri={1}", code, WebUtility.UrlEncode(GlobalSetting.Instance.IdentityCallback));
|
||||
var token = await _requestProvider.PostAsync<UserToken>(GlobalSetting.Instance.TokenEndpoint, data, GlobalSetting.Instance.ClientId, GlobalSetting.Instance.ClientSecret);
|
||||
return token;
|
||||
}
|
||||
}
|
||||
}
|
@ -8,7 +8,6 @@ using eShopOnContainers.Core.Services.OpenUrl;
|
||||
using eShopOnContainers.Core.Services.RequestProvider;
|
||||
using eShopOnContainers.Core.Services.Basket;
|
||||
using eShopOnContainers.Core.Services.Identity;
|
||||
using eShopOnContainers.Core.Services.Token;
|
||||
using eShopOnContainers.Core.Services.Order;
|
||||
using eShopOnContainers.Core.Services.User;
|
||||
using Xamarin.Forms;
|
||||
@ -54,7 +53,6 @@ namespace eShopOnContainers.Core.ViewModels.Base
|
||||
builder.RegisterType<DialogService>().As<IDialogService>();
|
||||
builder.RegisterType<OpenUrlService>().As<IOpenUrlService>();
|
||||
builder.RegisterType<IdentityService>().As<IIdentityService>();
|
||||
builder.RegisterType<TokenService>().As<ITokenService>();
|
||||
builder.RegisterType<RequestProvider>().As<IRequestProvider>();
|
||||
builder.RegisterType<LocationService>().As<ILocationService>().SingleInstance();
|
||||
|
||||
|
@ -1,7 +1,6 @@
|
||||
using eShopOnContainers.Core.Helpers;
|
||||
using eShopOnContainers.Core.Models.User;
|
||||
using eShopOnContainers.Core.Services.Identity;
|
||||
using eShopOnContainers.Core.Services.Token;
|
||||
using eShopOnContainers.Core.Services.OpenUrl;
|
||||
using eShopOnContainers.Core.Validations;
|
||||
using eShopOnContainers.Core.ViewModels.Base;
|
||||
@ -25,16 +24,13 @@ namespace eShopOnContainers.Core.ViewModels
|
||||
|
||||
private IOpenUrlService _openUrlService;
|
||||
private IIdentityService _identityService;
|
||||
private ITokenService _tokenService;
|
||||
|
||||
public LoginViewModel(
|
||||
IOpenUrlService openUrlService,
|
||||
IIdentityService identityService,
|
||||
ITokenService tokenService)
|
||||
IIdentityService identityService)
|
||||
{
|
||||
_openUrlService = openUrlService;
|
||||
_identityService = identityService;
|
||||
_tokenService = tokenService;
|
||||
|
||||
_userName = new ValidatableObject<string>();
|
||||
_password = new ValidatableObject<string>();
|
||||
@ -238,7 +234,7 @@ namespace eShopOnContainers.Core.ViewModels
|
||||
var authResponse = new AuthorizeResponse(url);
|
||||
if (!string.IsNullOrWhiteSpace(authResponse.Code))
|
||||
{
|
||||
var userToken = await _tokenService.GetTokenAsync(authResponse.Code);
|
||||
var userToken = await _identityService.GetTokenAsync(authResponse.Code);
|
||||
string accessToken = userToken.AccessToken;
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(accessToken))
|
||||
|
@ -170,8 +170,6 @@
|
||||
<Compile Include="Effects\EntryLineColorEffect.cs" />
|
||||
<Compile Include="Behaviors\LineColorBehavior.cs" />
|
||||
<Compile Include="Models\Token\UserToken.cs" />
|
||||
<Compile Include="Services\Token\TokenService.cs" />
|
||||
<Compile Include="Services\Token\ITokenService.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="app.config" />
|
||||
@ -267,7 +265,6 @@
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Folder Include="Models\Token\" />
|
||||
<Folder Include="Services\Token\" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\Portable\$(TargetFrameworkVersion)\Microsoft.Portable.CSharp.targets" />
|
||||
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
||||
|
Loading…
x
Reference in New Issue
Block a user