/// <summary>
 /// 配置刷新令牌
 /// </summary>
 /// <param name="builder">授权参数生成器</param>
 /// <param name="token">访问令牌参数</param>
 /// <param name="config">授权配置</param>
 protected virtual void ConfigRefreshToken(AuthorizationParameterBuilder builder, string token,
                                           TAuthorizationConfig config)
 {
     builder.GatewayUrl(config.AccessTokenUrl)
     .GrantType(OAuthConst.RefreshToken)
     .ClientId(config.AppId)
     .ClientSecret(config.AppKey)
     .RefreshToken(token);
 }
 /// <summary>
 /// 配置生成授权地址
 /// </summary>
 /// <param name="builder">授权参数生成器</param>
 /// <param name="param">授权参数</param>
 /// <param name="config">授权配置</param>
 protected virtual void ConfigGenerateUrl(AuthorizationParameterBuilder builder, AuthorizationParam param,
                                          TAuthorizationConfig config)
 {
     builder.GatewayUrl(config.AuthorizationUrl)
     .ClientId(config.AppId)
     .ResponseType(param.ResponseType)
     .State(param.State)
     .RedirectUri(string.IsNullOrWhiteSpace(param.RedirectUri) ? config.CallbackUrl : param.RedirectUri);
 }
 /// <summary>
 /// 配置获取访问令牌
 /// </summary>
 /// <param name="builder">授权参数生成器</param>
 /// <param name="param">访问令牌参数</param>
 /// <param name="config">授权配置</param>
 protected virtual void ConfigGetToken(AuthorizationParameterBuilder builder, AccessTokenParam param,
                                       TAuthorizationConfig config)
 {
     builder.GatewayUrl(config.AccessTokenUrl)
     .GrantType(OAuthConst.AuthorizationCode)
     .ClientId(config.AppId)
     .ClientSecret(config.AppKey)
     .Code(param.Code)
     .RedirectUri(string.IsNullOrWhiteSpace(param.RedirectUri) ? config.CallbackUrl : param.RedirectUri);
 }