コード例 #1
0
        public override Task Build(IEnumerable <string> scopes, HandlerContext handlerContext, JObject claims = null)
        {
            var dic = new JObject();

            if (handlerContext.Request.Data != null)
            {
                foreach (var record in handlerContext.Request.Data)
                {
                    dic.Add(record.Key, record.Value);
                }
            }

            if (handlerContext.User != null)
            {
                dic.Add(UserClaims.Subject, handlerContext.User.Id);
            }

            var refreshToken = GrantedTokenHelper.BuildRefreshToken(dic, handlerContext.Client.RefreshTokenExpirationTimeInSeconds);

            handlerContext.Response.Add(TokenResponseParameters.RefreshToken, refreshToken);
            return(Task.FromResult(0));
        }
コード例 #2
0
        public override async Task Build(IEnumerable <string> scopes, HandlerContext handlerContext, CancellationToken cancellationToken)
        {
            var dic = new JObject();

            if (handlerContext.Request.RequestData != null)
            {
                foreach (var record in handlerContext.Request.RequestData)
                {
                    dic.Add(record.Key, record.Value);
                }
            }

            if (handlerContext.User != null)
            {
                dic.Add(UserClaims.Subject, handlerContext.User.Id);
            }

            var authorizationCode = string.Empty;

            handlerContext.Response.TryGet(AuthorizationResponseParameters.Code, out authorizationCode);
            var refreshToken = await GrantedTokenHelper.AddRefreshToken(handlerContext.Client.ClientId, authorizationCode, dic, handlerContext.Client.RefreshTokenExpirationTimeInSeconds, cancellationToken);

            handlerContext.Response.Add(TokenResponseParameters.RefreshToken, refreshToken);
        }