if (context.Exception?.GetType() == typeof(SecurityTokenExpiredException))
{
IJwtService jwtService = context.HttpContext.RequestServices.GetService<IJwtService>();
if (context.Request.Cookies.TryGetValue("refresh-token", out string refreshToken))
{
Result<ClaimsPrincipal> principalResult = jwtService.ValidateAndDecodeToken(refreshToken);
if (!principalResult.IsSuccess || principalResult.Value == null)
{
return Task.CompletedTask;
}
Result<string> renewAccessTokenResult = jwtService.Encode(principalResult.Value);
if (!renewAccessTokenResult.IsSuccess && renewAccessTokenResult.ValidationErrors.Any())
{
return Task.CompletedTask;
}
context.Response.Cookies.Append("access-token", renewAccessTokenResult.Value);
context.Response.StatusCode = 200;
context.HttpContext.User = principalResult.Value;
context.Principal = principalResult.Value;
context.Success();
}
}
return Task.CompletedTask;
refresh token
и из него извлекаем ClaimPrincipal
, далее на его основе делаем access token
из того же сервиса и обрабатываем запрос, что бы он возвращал нужный статус. Как говорил Andrei SunnyPh , это допустимая практика (Спасибо) $.ajax({
url: 'https://domain.com/router/',
method: 'post', // NOT A TYPE
data: JSON.stringify({ ... }),
dataType: 'application/json; charset=utf-8',
success: (response) => { ... },
error: (response) => { ... }
})
.done
и .fail
срабатываю, когда у вас получилось либо не получилось сделать запрос. success
и error
срабатывают в зависимости от ответа сервера. if
равно false
. Больше вариантов не может бытьif
программа заходит, значит всё должно работать. Вы лучше не 10 выводите в Debug.Log
, а значение переменной textret
NullReferenceException
, значит что объект NULL. Почему? Вы получаете объект zacaz1
используя GetComponent<trigger_test>
. Что делает GetComponent<trigger_test>
? Возвращает присоединённый компонент указанного объекта (текущего). Если при обращении к zacaz1
вы получаете NULL, о чём это говорит? О том, что у этого компонента нет объекта trigger_test
public class Entity : MonoBehaviour
{
[SerializeField] private EntityScriptableObject _scriptableObject;
public EntityScriptableObject ScriptableObject => _scriptableObject;
}
[SerializeField] private EntityScriptableObject _scriptableObject;
public EntityScriptableObject ScriptableObject => _scriptableObject;
API
? Это просто сервер, куда вы будете делать HTTP
запросы и получать информацию. Как разница, откуда вы будете делать HTTP
запрос используя HttpClient
. Ваш шаблон просто будет показывать, как вы это собираетесь выводить пользователю.Console Application
GUI
? Делайте на Windows Forms
/WPF
Xamarin.NET
или MUI
asp.net mvc
asp.net web api
и прикрепить туда в качестве клиента React
, Angular
или Vue.js
API
? Можете сделать только на React
, Angular
или Vue.js
GUI
в браузере, но не хотите отходить от технологий Microsoft
? используйте asp.net Blazor