예제 #1
0
        private void SetAccessToken(AccessToken accessToken)
        {
            var cookieOptions = new CookieOptions
            {
                Path    = "/",
                Expires = accessToken.Expiration
            };
            var encodedToken = TokenEncoder.Encode(accessToken);

            Response.Cookies.Append(AccessTokenCookieName, encodedToken, cookieOptions);
        }
예제 #2
0
        private AccessToken GetAccessToken()
        {
            string token;

            if (!Request.Cookies.TryGetValue(AccessTokenCookieName, out token))
            {
                throw new InvalidOperationException();
            }

            return(TokenEncoder.Decode(token));
        }
예제 #3
0
        private void ExpireToken()
        {
            string token;

            if (!Request.Cookies.TryGetValue(AccessTokenCookieName, out token))
            {
                return;
            }

            var accessToken = TokenEncoder.Decode(token);

            var expiredAccessToken = new AccessToken(
                accessToken.UserId,
                accessToken.Token,
                _utcTimeProvider.UtcNow.AddDays(-1));

            SetAccessToken(expiredAccessToken);
        }