Example #1
0
        public override Task AuthorizationEndpointResponse(OAuthAuthorizationEndpointResponseContext context)
        {
            var redirectUri = context.AuthorizeEndpointRequest.RedirectUri;

            if (context.AuthorizeEndpointRequest.IsAuthorizationCodeGrantType)
            {
                redirectUri = $"{redirectUri}?code={context.AuthorizationCode}&redirect_uri={context.AuthorizeEndpointRequest.RedirectUri}";
                if (!string.IsNullOrEmpty(context.AuthorizeEndpointRequest.State))
                {
                    redirectUri = $"{redirectUri}&state={context.AuthorizeEndpointRequest.State}";
                }
            }
            if (context.AuthorizeEndpointRequest.IsImplicitGrantType)
            {
                redirectUri = $"{redirectUri}?access_token={context.AccessToken}";
                if (!string.IsNullOrEmpty(context.AuthorizeEndpointRequest.State))
                {
                    redirectUri += $"&state={context.AuthorizeEndpointRequest.State}";
                }
                redirectUri += $"&token_type=bearer&expires_in={context.Properties.ExpiresUtc}";
            }
            context.Response.Redirect(redirectUri);
            context.RequestCompleted();
            return(Task.CompletedTask);
            //return base.AuthorizationEndpointResponse(context);
        }