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