Compare commits
1 Commits
822a8379aa
...
APIDEV-0.1
| Author | SHA1 | Date | |
|---|---|---|---|
| 9fae3b978f |
@ -2,6 +2,7 @@
|
|||||||
using YABA.API.Extensions;
|
using YABA.API.Extensions;
|
||||||
using YABA.Common.Extensions;
|
using YABA.Common.Extensions;
|
||||||
using YABA.Common.Lookups;
|
using YABA.Common.Lookups;
|
||||||
|
using YABA.Common.Utils;
|
||||||
using YABA.Service.Interfaces;
|
using YABA.Service.Interfaces;
|
||||||
|
|
||||||
namespace YABA.API.Middlewares
|
namespace YABA.API.Middlewares
|
||||||
@ -31,7 +32,7 @@ namespace YABA.API.Middlewares
|
|||||||
userId = registedUser.Id;
|
userId = registedUser.Id;
|
||||||
}
|
}
|
||||||
|
|
||||||
httpContext.User.Identities.FirstOrDefault().AddClaim(new Claim(ClaimsLookup.UserId.GetClaimName(), userId.ToString()));
|
httpContext.User.Identities.FirstOrDefault().AddClaim(new Claim(ClaimsLookup.UserId.GetClaimName(EnvironmentUtils.IsDevelopmentEnvironment()), userId.ToString()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -4,11 +4,13 @@ namespace YABA.Common.Attributes
|
|||||||
{
|
{
|
||||||
public class ClaimNameAttribute : Attribute
|
public class ClaimNameAttribute : Attribute
|
||||||
{
|
{
|
||||||
public string Name { get; private set; }
|
public string DevClaimName { get; private set; }
|
||||||
|
public string ProdClaimName { get; private set; }
|
||||||
|
|
||||||
public ClaimNameAttribute(string name)
|
public ClaimNameAttribute(string devClaimName, string prodClaimName)
|
||||||
{
|
{
|
||||||
this.Name = name;
|
this.DevClaimName = devClaimName;
|
||||||
|
ProdClaimName = prodClaimName;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -28,9 +28,9 @@ namespace YABA.Common.Extensions
|
|||||||
return enumValue.GetAttribute<DisplayAttribute>().Name;
|
return enumValue.GetAttribute<DisplayAttribute>().Name;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static string GetClaimName(this ClaimsLookup claimLookup)
|
public static string GetClaimName(this ClaimsLookup claimLookup, bool isDevelopmentEnvironment)
|
||||||
{
|
{
|
||||||
return claimLookup.GetAttribute<ClaimNameAttribute>().Name;
|
return isDevelopmentEnvironment ? claimLookup.GetAttribute<ClaimNameAttribute>().DevClaimName : claimLookup.GetAttribute<ClaimNameAttribute>().ProdClaimName;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static bool IsCrudResultSuccessful(this CrudResultLookup importStatusLookup) => SuccessfulCrudStatuses.Contains(importStatusLookup);
|
public static bool IsCrudResultSuccessful(this CrudResultLookup importStatusLookup) => SuccessfulCrudStatuses.Contains(importStatusLookup);
|
||||||
|
|||||||
@ -1,6 +1,8 @@
|
|||||||
using System.Security.Claims;
|
using System;
|
||||||
|
using System.Security.Claims;
|
||||||
using System.Security.Principal;
|
using System.Security.Principal;
|
||||||
using YABA.Common.Lookups;
|
using YABA.Common.Lookups;
|
||||||
|
using YABA.Common.Utils;
|
||||||
|
|
||||||
namespace YABA.Common.Extensions
|
namespace YABA.Common.Extensions
|
||||||
{
|
{
|
||||||
@ -12,7 +14,7 @@ namespace YABA.Common.Extensions
|
|||||||
public static string GetCustomClaim(this IIdentity identity, ClaimsLookup claim)
|
public static string GetCustomClaim(this IIdentity identity, ClaimsLookup claim)
|
||||||
{
|
{
|
||||||
var claimsIdentity = identity as ClaimsIdentity;
|
var claimsIdentity = identity as ClaimsIdentity;
|
||||||
return claimsIdentity.FindFirst(claim.GetClaimName())?.Value.ToString();
|
return claimsIdentity.FindFirst(claim.GetClaimName(EnvironmentUtils.IsDevelopmentEnvironment()))?.Value.ToString();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -4,19 +4,19 @@ namespace YABA.Common.Lookups
|
|||||||
{
|
{
|
||||||
public enum ClaimsLookup
|
public enum ClaimsLookup
|
||||||
{
|
{
|
||||||
[ClaimNameAttribute("https://dev.iwanaga.moe/api/auth_provider_id")]
|
[ClaimName("https://auth.dev.iwanaga.moe/api/auth_provider_id", "https://auth.iwanaga.moe/api/auth_provider_id")]
|
||||||
AuthProviderId = 1,
|
AuthProviderId = 1,
|
||||||
|
|
||||||
[ClaimNameAttribute("https://dev.iwanaga.moe/api/email_address")]
|
[ClaimName("https://auth.dev.iwanaga.moe/api/email_address", "https://auth.iwanaga.moe/api/email_address")]
|
||||||
UserEmail = 2,
|
UserEmail = 2,
|
||||||
|
|
||||||
[ClaimNameAttribute("https://dev.iwanaga.moe/api/email_verified")]
|
[ClaimName("https://auth.dev.iwanaga.moe/api/email_verified", "https://auth.iwanaga.moe/api/email_verified")]
|
||||||
IsEmailConfirmed = 3,
|
IsEmailConfirmed = 3,
|
||||||
|
|
||||||
[ClaimNameAttribute("https://dev.iwanaga.moe/api/username")]
|
[ClaimName("https://auth.dev.iwanaga.moe/api/username", "https://auth.iwanaga.moe/api/username")]
|
||||||
Username = 4,
|
Username = 4,
|
||||||
|
|
||||||
[ClaimNameAttribute("https://dev.iwanaga.moe/api/id")]
|
[ClaimName("https://auth.dev.iwanaga.moe/api/id", "https://auth.iwanaga.moe/api/id")]
|
||||||
UserId = 5
|
UserId = 5
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
9
API/YABA.Common/Utils/EnvironmentUtils.cs
Normal file
9
API/YABA.Common/Utils/EnvironmentUtils.cs
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
using System;
|
||||||
|
|
||||||
|
namespace YABA.Common.Utils
|
||||||
|
{
|
||||||
|
public static class EnvironmentUtils
|
||||||
|
{
|
||||||
|
public static bool IsDevelopmentEnvironment() => Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") == "Development";
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user