public sealed override IDictionary <string, string> GetPayload(IDictionary <string, string> additionalPayload = null)
        {
            var iat = DateTime.Now.ToUnixSeconds();
            var exp = (DateTime.Now + _configuration.CustomTokenTTL).ToUnixSeconds();

            AddToPayload("iss", _creadentials.GetServiceAccountEmail());
            AddToPayload("sub", _creadentials.GetServiceAccountEmail());
            AddToPayload("aud", _configuration.CustomTokenPath.AbsoluteUri);
            AddToPayload("iat", iat.ToString());
            AddToPayload("exp", exp.ToString());

            return(base.GetPayload(additionalPayload));
        }
Ejemplo n.º 2
0
        private string PrepareSignedUrl(SigningOption options, string signature) => new UriBuilder
        {
            Scheme = "https",
            Host   = $"{_firebaseConfiguration.StorageBaseAuthority.TrimSlashes().Replace("https://", "")}/{_credentials.GetDefaultBucket().TrimSlashes()}",
            Path   = options.Path.Trim().TrimSlashes(),
            Query  = $"GoogleAccessId={_credentials.GetServiceAccountEmail()}&Expires={BuildExpiration(options.ExpireDate)}&Signature={WebUtility.UrlEncode(signature)}"
        }

        .Uri.AbsoluteUri;
Ejemplo n.º 3
0
        public sealed override IDictionary <string, string> GetPayload(IDictionary <string, string> additionalPayload = null)
        {
            var iat = DateTime.Now.ToUnixSeconds();
            var exp = (DateTime.Now + _configuration.AccessTokenTTL).ToUnixSeconds();

            AddToPayload("scope", string.Join <string>(_configuration.GoogleScopeDelimiter, _configuration.AllowedGoogleScopes));
            AddToPayload("iss", _creadentials.GetServiceAccountEmail());
            AddToPayload("aud", _configuration.GoogleOAuthTokenPath.AbsoluteUri);
            AddToPayload("exp", exp.ToString());
            AddToPayload("iat", iat.ToString());

            return(base.GetPayload(additionalPayload));
        }
        private string PrepareSignedUrl(SigningOption options, string signature)
        {
            var uri = new UriBuilder();

            uri.Scheme = "https";
            uri.Host   = $"{_firebaseConfiguration.StorageBaseAuthority.TrimSlashes().Replace("https://", "")}/{_credentials.GetDefaultBucket().TrimSlashes()}";
            uri.Path   = options.Path.Trim().TrimSlashes();
            uri.Query  = string.Format("GoogleAccessId={0}&Expires={1}&Signature={2}", _credentials.GetServiceAccountEmail(),
                                       BuildExpiration(options.ExpireDate), WebUtility.UrlEncode(signature));
            return(uri.Uri.AbsoluteUri);
        }