Example #1
0
        public async Task <ActionResult <AuthResult> > LoginAsync(RefreshTokenLoginRequest request)
        {
            var authResult = await userService.AuthenticateAsync(request).ConfigureAwait(false);

            var result = Authenticate(authResult);

            return(result);
        }
Example #2
0
        public void SaveRefreshToken(int timeoutInSeconds, RefreshTokenLoginRequest request)
        {
            var cacheOptions = new DistributedCacheEntryOptions();

            cacheOptions.SetAbsoluteExpiration(TimeSpan.FromSeconds(timeoutInSeconds));

            cache.SetString
            (
                request.RefreshToken,
                JsonConvert.SerializeObject(request),
                cacheOptions
            );
        }
Example #3
0
        public async Task <AuthResult> AuthenticateAsync(RefreshTokenLoginRequest request)
        {
            var invalidAuth      = new AuthResult("Invalid refresh token");
            var refreshTokenInfo = refreshTokenRepositoryCache.GetRefreshToken(request?.RefreshToken);

            if (refreshTokenInfo == null || refreshTokenInfo.Email != refreshTokenInfo.Email)
            {
                return(invalidAuth);
            }

            var user = await GetByEmailAsync(request.Email);

            if (user == null)
            {
                return(invalidAuth);
            }

            return(new AuthResult(user));
        }