Browse Source

Refactored TokenService into IdentityService.

pull/213/merge
David Britch 7 years ago
parent
commit
d3ea7ec853
7 changed files with 25 additions and 46 deletions
  1. +5
    -1
      src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/Identity/IIdentityService.cs
  2. +18
    -0
      src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/Identity/IdentityService.cs
  3. +0
    -10
      src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/Token/ITokenService.cs
  4. +0
    -24
      src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/Token/TokenService.cs
  5. +0
    -2
      src/Mobile/eShopOnContainers/eShopOnContainers.Core/ViewModels/Base/ViewModelLocator.cs
  6. +2
    -6
      src/Mobile/eShopOnContainers/eShopOnContainers.Core/ViewModels/LoginViewModel.cs
  7. +0
    -3
      src/Mobile/eShopOnContainers/eShopOnContainers.Core/eShopOnContainers.Core.csproj

+ 5
- 1
src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/Identity/IIdentityService.cs View File

@ -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);
}
}

+ 18
- 0
src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/Identity/IdentityService.cs View File

@ -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;
}
}
}

+ 0
- 10
src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/Token/ITokenService.cs View File

@ -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);
}
}

+ 0
- 24
src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/Token/TokenService.cs View File

@ -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;
}
}
}

+ 0
- 2
src/Mobile/eShopOnContainers/eShopOnContainers.Core/ViewModels/Base/ViewModelLocator.cs View File

@ -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();


+ 2
- 6
src/Mobile/eShopOnContainers/eShopOnContainers.Core/ViewModels/LoginViewModel.cs View File

@ -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))


+ 0
- 3
src/Mobile/eShopOnContainers/eShopOnContainers.Core/eShopOnContainers.Core.csproj View File

@ -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…
Cancel
Save