add support for Jwt Token creation
This commit is contained in:
parent
5e82700871
commit
69e4fcfc76
|
@ -29,6 +29,7 @@
|
|||
@inject IAliasRepository AliasRepository
|
||||
@inject IUrlMappingRepository UrlMappingRepository
|
||||
@inject IVisitorRepository VisitorRepository
|
||||
@inject IJwtManager JwtManager
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html lang="@_language">
|
||||
|
@ -48,7 +49,7 @@
|
|||
<link id="app-stylesheet-module" />
|
||||
@if (_renderMode == "Interactive")
|
||||
{
|
||||
<Head @rendermode="@RenderModes.GetInteractiveRenderMode((_renderMode + _interactiveRenderMode), _prerender)" />
|
||||
<Head @rendermode="@RenderModes.GetInteractiveRenderMode((_renderMode + _interactiveRenderMode), _prerender.Contains("Prerendered"))" />
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -61,11 +62,11 @@
|
|||
{
|
||||
@if (_renderMode == "Interactive")
|
||||
{
|
||||
<Routes AntiForgeryToken="@_antiForgeryToken" Runtime="Server" RenderMode="PreRendered" VisitorId="@_visitorId" RemoteIPAddress="@_remoteIPAddress" AuthorizationToken="" @rendermode="@RenderModes.GetInteractiveRenderMode((_renderMode + _interactiveRenderMode), _prerender)" />
|
||||
<Routes AntiForgeryToken="@_antiForgeryToken" Runtime="@_interactiveRenderMode" RenderMode="@_prerender" VisitorId="@_visitorId" RemoteIPAddress="@_remoteIPAddress" AuthorizationToken="@_authorizationToken" @rendermode="@RenderModes.GetInteractiveRenderMode((_renderMode + _interactiveRenderMode), _prerender.Contains("Prerendered"))" />
|
||||
}
|
||||
else
|
||||
{
|
||||
<Routes AntiForgeryToken="@_antiForgeryToken" Runtime="Server" RenderMode="PreRendered" VisitorId="@_visitorId" RemoteIPAddress="@_remoteIPAddress" AuthorizationToken="" />
|
||||
<Routes AntiForgeryToken="@_antiForgeryToken" Runtime="@_interactiveRenderMode" RenderMode="@_prerender" VisitorId="@_visitorId" RemoteIPAddress="@_remoteIPAddress" AuthorizationToken="@_authorizationToken" />
|
||||
}
|
||||
|
||||
<script src="js/interop.js"></script>
|
||||
|
@ -91,17 +92,18 @@
|
|||
@code {
|
||||
private string _renderMode = "Interactive";
|
||||
private string _interactiveRenderMode = "Server";
|
||||
private bool _prerender = true;
|
||||
private string _prerender = "Prerendered";
|
||||
private int _visitorId = -1;
|
||||
private string _remoteIPAddress = "";
|
||||
private string _authorizationToken = "";
|
||||
private string _language = "en";
|
||||
private string _antiForgeryToken = "";
|
||||
private string _remoteIPAddress = "";
|
||||
private string _headResources = "";
|
||||
private string _bodyResources = "";
|
||||
private string _styleSheets = "";
|
||||
private string _PWAScript = "";
|
||||
private string _reconnectScript = "";
|
||||
private string _message = "";
|
||||
private int _visitorId = -1;
|
||||
|
||||
// CascadingParameter is required to access HttpContext
|
||||
[CascadingParameter]
|
||||
|
@ -134,7 +136,7 @@
|
|||
}
|
||||
if (!string.IsNullOrEmpty(site.RenderMode))
|
||||
{
|
||||
_prerender = (site.RenderMode.Replace(site.Runtime, "")) == "Prerendered";
|
||||
_prerender = site.RenderMode;
|
||||
}
|
||||
|
||||
Route route = new Route(url, alias.Path);
|
||||
|
@ -155,15 +157,10 @@
|
|||
}
|
||||
|
||||
// get jwt token for downstream APIs
|
||||
// if (User.Identity.IsAuthenticated)
|
||||
// {
|
||||
// var sitesettings = HttpContext.GetSiteSettings();
|
||||
// var secret = sitesettings.GetValue("JwtOptions:Secret", "");
|
||||
// if (!string.IsNullOrEmpty(secret))
|
||||
// {
|
||||
// AuthorizationToken = _jwtManager.GenerateToken(alias, (ClaimsIdentity)User.Identity, secret, sitesettings.GetValue("JwtOptions:Issuer", ""), sitesettings.GetValue("JwtOptions:Audience", ""), int.Parse(sitesettings.GetValue("JwtOptions:Lifetime", "20")));
|
||||
// }
|
||||
// }
|
||||
if (Context.User.Identity.IsAuthenticated)
|
||||
{
|
||||
CreateJwtToken(alias);
|
||||
}
|
||||
|
||||
// stylesheets
|
||||
var themes = ThemeRepository.GetThemes().ToList();
|
||||
|
@ -298,12 +295,8 @@
|
|||
language = (language.Trim().Length == 0) ? "??" : language;
|
||||
|
||||
// filter
|
||||
string filter = Constants.DefaultVisitorFilter;
|
||||
var settings = Context.GetSiteSettings();
|
||||
if (settings.ContainsKey("VisitorFilter") && !string.IsNullOrEmpty(settings["VisitorFilter"]))
|
||||
{
|
||||
filter = settings["VisitorFilter"];
|
||||
}
|
||||
var filter = settings.GetValue("VisitorFilter", Constants.DefaultVisitorFilter);
|
||||
foreach (string term in filter.ToLower().Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries).Select(sValue => sValue.Trim()).ToArray())
|
||||
{
|
||||
if (_remoteIPAddress.ToLower().Contains(term) || useragent.ToLower().Contains(term) || language.ToLower().Contains(term))
|
||||
|
@ -329,11 +322,7 @@
|
|||
{
|
||||
// if enabled use IP Address correlation
|
||||
_visitorId = -1;
|
||||
bool correlate = true;
|
||||
if (settings.ContainsKey("VisitorCorrelation") && !string.IsNullOrEmpty(settings["VisitorCorrelation"]))
|
||||
{
|
||||
correlate = bool.Parse(settings["VisitorCorrelation"]);
|
||||
}
|
||||
var correlate = bool.Parse(settings.GetValue("VisitorCorrelation", "true"));
|
||||
if (correlate)
|
||||
{
|
||||
visitor = VisitorRepository.GetVisitor(SiteId, _remoteIPAddress);
|
||||
|
@ -416,6 +405,16 @@
|
|||
}
|
||||
}
|
||||
|
||||
private void CreateJwtToken(Alias alias)
|
||||
{
|
||||
var sitesettings = Context.GetSiteSettings();
|
||||
var secret = sitesettings.GetValue("JwtOptions:Secret", "");
|
||||
if (!string.IsNullOrEmpty(secret))
|
||||
{
|
||||
_authorizationToken = JwtManager.GenerateToken(alias, (ClaimsIdentity)Context.User.Identity, secret, sitesettings.GetValue("JwtOptions:Issuer", ""), sitesettings.GetValue("JwtOptions:Audience", ""), int.Parse(sitesettings.GetValue("JwtOptions:Lifetime", "20")));
|
||||
}
|
||||
}
|
||||
|
||||
private string CreatePWAScript(Alias alias, Site site, Route route)
|
||||
{
|
||||
return
|
||||
|
|
Loading…
Reference in New Issue
Block a user