Skip to content

Commit d3ea7ec

Browse files
David BritchDavid Britch
authored andcommitted
Refactored TokenService into IdentityService.
1 parent 5db62c1 commit d3ea7ec

7 files changed

Lines changed: 25 additions & 46 deletions

File tree

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,12 @@
1-
namespace eShopOnContainers.Core.Services.Identity
1+
using eShopOnContainers.Core.Models.Token;
2+
using System.Threading.Tasks;
3+
4+
namespace eShopOnContainers.Core.Services.Identity
25
{
36
public interface IIdentityService
47
{
58
string CreateAuthorizationRequest();
69
string CreateLogoutRequest(string token);
10+
Task<UserToken> GetTokenAsync(string code);
711
}
812
}

src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/Identity/IdentityService.cs

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,22 @@
11
using IdentityModel.Client;
22
using System;
33
using System.Collections.Generic;
4+
using System.Net;
5+
using System.Threading.Tasks;
6+
using eShopOnContainers.Core.Services.RequestProvider;
7+
using eShopOnContainers.Core.Models.Token;
48

59
namespace eShopOnContainers.Core.Services.Identity
610
{
711
public class IdentityService : IIdentityService
812
{
13+
private readonly IRequestProvider _requestProvider;
14+
15+
public IdentityService(IRequestProvider requestProvider)
16+
{
17+
_requestProvider = requestProvider;
18+
}
19+
920
public string CreateAuthorizationRequest()
1021
{
1122
// Create URI to authorization endpoint
@@ -40,5 +51,12 @@ public string CreateLogoutRequest(string token)
4051
token,
4152
GlobalSetting.Instance.LogoutCallback);
4253
}
54+
55+
public async Task<UserToken> GetTokenAsync(string code)
56+
{
57+
string data = string.Format("grant_type=authorization_code&code={0}&redirect_uri={1}", code, WebUtility.UrlEncode(GlobalSetting.Instance.IdentityCallback));
58+
var token = await _requestProvider.PostAsync<UserToken>(GlobalSetting.Instance.TokenEndpoint, data, GlobalSetting.Instance.ClientId, GlobalSetting.Instance.ClientSecret);
59+
return token;
60+
}
4361
}
4462
}

src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/Token/ITokenService.cs

Lines changed: 0 additions & 10 deletions
This file was deleted.

src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/Token/TokenService.cs

Lines changed: 0 additions & 24 deletions
This file was deleted.

src/Mobile/eShopOnContainers/eShopOnContainers.Core/ViewModels/Base/ViewModelLocator.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
using eShopOnContainers.Core.Services.RequestProvider;
99
using eShopOnContainers.Core.Services.Basket;
1010
using eShopOnContainers.Core.Services.Identity;
11-
using eShopOnContainers.Core.Services.Token;
1211
using eShopOnContainers.Core.Services.Order;
1312
using eShopOnContainers.Core.Services.User;
1413
using Xamarin.Forms;
@@ -54,7 +53,6 @@ public static void RegisterDependencies(bool useMockServices)
5453
builder.RegisterType<DialogService>().As<IDialogService>();
5554
builder.RegisterType<OpenUrlService>().As<IOpenUrlService>();
5655
builder.RegisterType<IdentityService>().As<IIdentityService>();
57-
builder.RegisterType<TokenService>().As<ITokenService>();
5856
builder.RegisterType<RequestProvider>().As<IRequestProvider>();
5957
builder.RegisterType<LocationService>().As<ILocationService>().SingleInstance();
6058

src/Mobile/eShopOnContainers/eShopOnContainers.Core/ViewModels/LoginViewModel.cs

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
using eShopOnContainers.Core.Helpers;
22
using eShopOnContainers.Core.Models.User;
33
using eShopOnContainers.Core.Services.Identity;
4-
using eShopOnContainers.Core.Services.Token;
54
using eShopOnContainers.Core.Services.OpenUrl;
65
using eShopOnContainers.Core.Validations;
76
using eShopOnContainers.Core.ViewModels.Base;
@@ -25,16 +24,13 @@ public class LoginViewModel : ViewModelBase
2524

2625
private IOpenUrlService _openUrlService;
2726
private IIdentityService _identityService;
28-
private ITokenService _tokenService;
2927

3028
public LoginViewModel(
3129
IOpenUrlService openUrlService,
32-
IIdentityService identityService,
33-
ITokenService tokenService)
30+
IIdentityService identityService)
3431
{
3532
_openUrlService = openUrlService;
3633
_identityService = identityService;
37-
_tokenService = tokenService;
3834

3935
_userName = new ValidatableObject<string>();
4036
_password = new ValidatableObject<string>();
@@ -238,7 +234,7 @@ private async Task NavigateAsync(string url)
238234
var authResponse = new AuthorizeResponse(url);
239235
if (!string.IsNullOrWhiteSpace(authResponse.Code))
240236
{
241-
var userToken = await _tokenService.GetTokenAsync(authResponse.Code);
237+
var userToken = await _identityService.GetTokenAsync(authResponse.Code);
242238
string accessToken = userToken.AccessToken;
243239

244240
if (!string.IsNullOrWhiteSpace(accessToken))

src/Mobile/eShopOnContainers/eShopOnContainers.Core/eShopOnContainers.Core.csproj

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -170,8 +170,6 @@
170170
<Compile Include="Effects\EntryLineColorEffect.cs" />
171171
<Compile Include="Behaviors\LineColorBehavior.cs" />
172172
<Compile Include="Models\Token\UserToken.cs" />
173-
<Compile Include="Services\Token\TokenService.cs" />
174-
<Compile Include="Services\Token\ITokenService.cs" />
175173
</ItemGroup>
176174
<ItemGroup>
177175
<None Include="app.config" />
@@ -267,7 +265,6 @@
267265
</ItemGroup>
268266
<ItemGroup>
269267
<Folder Include="Models\Token\" />
270-
<Folder Include="Services\Token\" />
271268
</ItemGroup>
272269
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\Portable\$(TargetFrameworkVersion)\Microsoft.Portable.CSharp.targets" />
273270
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">

0 commit comments

Comments
 (0)