Exemplo n.º 1
0
    public HarvestAuthenticationOptions()
    {
        ClaimsIssuer = HarvestAuthenticationDefaults.Issuer;
        CallbackPath = HarvestAuthenticationDefaults.CallbackPath;

        AuthorizationEndpoint   = HarvestAuthenticationDefaults.AuthorizationEndpoint;
        TokenEndpoint           = HarvestAuthenticationDefaults.TokenEndpoint;
        UserInformationEndpoint = HarvestAuthenticationDefaults.UserInformationEndpoint;

        ClaimActions.MapJsonSubKey(ClaimTypes.NameIdentifier, "user", "id");
        ClaimActions.MapJsonSubKey(ClaimTypes.GivenName, "user", "first_name");
        ClaimActions.MapJsonSubKey(ClaimTypes.Surname, "user", "last_name");
        ClaimActions.MapJsonSubKey(ClaimTypes.Email, "user", "email");
        ClaimActions.MapCustomJson(
            ClaimTypes.Name,
            payload =>
        {
            if (!payload.TryGetProperty("user", out var user))
            {
                return(null);
            }

            return($"{user.GetString("first_name")} {user.GetString("last_name")}".Trim());
        });
    }
        public KakaoTalkAuthenticationOptions()
        {
            ClaimsIssuer = KakaoTalkAuthenticationDefaults.Issuer;
            CallbackPath = KakaoTalkAuthenticationDefaults.CallbackPath;

            AuthorizationEndpoint   = KakaoTalkAuthenticationDefaults.AuthorizationEndpoint;
            TokenEndpoint           = KakaoTalkAuthenticationDefaults.TokenEndpoint;
            UserInformationEndpoint = KakaoTalkAuthenticationDefaults.UserInformationEndpoint;

            ClaimActions.MapJsonKey(ClaimTypes.NameIdentifier, "id");
            ClaimActions.MapCustomJson(ClaimTypes.Name, user =>
            {
                JsonElement property = user;
                bool hasProperty     = property.TryGetProperty("kakao_account", out property) &&
                                       property.TryGetProperty("profile", out property) &&
                                       property.TryGetProperty("nickname", out property) &&
                                       property.ValueKind == JsonValueKind.String;
                return(hasProperty
                    ? property.GetString()
                    : null);
            });
            ClaimActions.MapJsonSubKey(ClaimTypes.Email, "kakao_account", "email");
            ClaimActions.MapJsonSubKey(ClaimTypes.DateOfBirth, "kakao_account", "birthday");
            ClaimActions.MapJsonSubKey(ClaimTypes.Gender, "kakao_account", "gender");
            ClaimActions.MapJsonSubKey(ClaimTypes.MobilePhone, "kakao_account", "phone_number");
            ClaimActions.MapJsonSubKey(Claims.AgeRange, "kakao_account", "age_range");
            ClaimActions.MapJsonSubKey(Claims.YearOfBirth, "kakao_account", "birthyear");
        }
Exemplo n.º 3
0
    public SpotifyAuthenticationOptions()
    {
        ClaimsIssuer = SpotifyAuthenticationDefaults.Issuer;

        CallbackPath = SpotifyAuthenticationDefaults.CallbackPath;

        AuthorizationEndpoint   = SpotifyAuthenticationDefaults.AuthorizationEndpoint;
        TokenEndpoint           = SpotifyAuthenticationDefaults.TokenEndpoint;
        UserInformationEndpoint = SpotifyAuthenticationDefaults.UserInformationEndpoint;

        ClaimActions.MapJsonKey(ClaimTypes.NameIdentifier, "id");
        ClaimActions.MapJsonKey(ClaimTypes.Name, "display_name");
        ClaimActions.MapJsonKey(ClaimTypes.Email, "email");
        ClaimActions.MapJsonKey(ClaimTypes.DateOfBirth, "birthdate");
        ClaimActions.MapJsonKey(ClaimTypes.Country, "country");
        ClaimActions.MapJsonKey(ClaimTypes.Uri, "uri");
        ClaimActions.MapJsonKey(Claims.Product, "product");
        ClaimActions.MapJsonSubKey(Claims.Url, "external_urls", "spotify");

        ClaimActions.MapCustomJson(
            Claims.ProfilePicture,
            user =>
        {
            if (user.TryGetProperty("images", out var images))
            {
                return(images.EnumerateArray().Select((p) => p.GetString("url")).FirstOrDefault());
            }

            return(null);
        });
    }
Exemplo n.º 4
0
        /// <summary>
        /// Initializes a new <see cref="FacebookOptions"/>.
        /// </summary>
        public FacebookOptions()
        {
            CallbackPath            = new PathString("/signin-facebook");
            SendAppSecretProof      = true;
            AuthorizationEndpoint   = FacebookDefaults.AuthorizationEndpoint;
            TokenEndpoint           = FacebookDefaults.TokenEndpoint;
            UserInformationEndpoint = FacebookDefaults.UserInformationEndpoint;
            Scope.Add("public_profile");
            Scope.Add("email");
            Fields.Add("name");
            Fields.Add("email");
            Fields.Add("first_name");
            Fields.Add("last_name");

            ClaimActions.MapJsonKey("sub", "id");
            ClaimActions.MapJsonSubKey("urn:facebook:age_range_min", "age_range", "min");
            ClaimActions.MapJsonSubKey("urn:facebook:age_range_max", "age_range", "max");
            ClaimActions.MapJsonKey("birthdate", "birthday");
            ClaimActions.MapJsonKey("email", "email");
            ClaimActions.MapJsonKey("name", "name");
            ClaimActions.MapJsonKey("given_name", "first_name");
            ClaimActions.MapJsonKey("middle_name", "middle_name");
            ClaimActions.MapJsonKey("family_name", "last_name");
            ClaimActions.MapJsonKey("gender", "gender");
            ClaimActions.MapJsonKey("urn:facebook:link", "link");
            ClaimActions.MapJsonSubKey("urn:facebook:location", "location", "name");
            ClaimActions.MapJsonKey("locale", "locale");
            ClaimActions.MapJsonKey("urn:facebook:timezone", "timezone");
        }
Exemplo n.º 5
0
    /// <summary>
    /// Initializes a new <see cref="FacebookOptions"/>.
    /// </summary>
    public FacebookOptions()
    {
        CallbackPath            = new PathString("/signin-facebook");
        SendAppSecretProof      = true;
        AuthorizationEndpoint   = FacebookDefaults.AuthorizationEndpoint;
        TokenEndpoint           = FacebookDefaults.TokenEndpoint;
        UserInformationEndpoint = FacebookDefaults.UserInformationEndpoint;
        Scope.Add("email");
        Fields.Add("name");
        Fields.Add("email");
        Fields.Add("first_name");
        Fields.Add("last_name");

        ClaimActions.MapJsonKey(ClaimTypes.NameIdentifier, "id");
        ClaimActions.MapJsonSubKey("urn:facebook:age_range_min", "age_range", "min");
        ClaimActions.MapJsonSubKey("urn:facebook:age_range_max", "age_range", "max");
        ClaimActions.MapJsonKey(ClaimTypes.DateOfBirth, "birthday");
        ClaimActions.MapJsonKey(ClaimTypes.Email, "email");
        ClaimActions.MapJsonKey(ClaimTypes.Name, "name");
        ClaimActions.MapJsonKey(ClaimTypes.GivenName, "first_name");
        ClaimActions.MapJsonKey("urn:facebook:middle_name", "middle_name");
        ClaimActions.MapJsonKey(ClaimTypes.Surname, "last_name");
        ClaimActions.MapJsonKey(ClaimTypes.Gender, "gender");
        ClaimActions.MapJsonKey("urn:facebook:link", "link");
        ClaimActions.MapJsonSubKey("urn:facebook:location", "location", "name");
        ClaimActions.MapJsonKey(ClaimTypes.Locality, "locale");
        ClaimActions.MapJsonKey("urn:facebook:timezone", "timezone");
    }
        public EsiaAuthenticationOptions()
        {
            CallbackPath            = new PathString("/signin-esia");
            AuthorizationEndpoint   = EsiaAuthenticationDefaults.AuthorizationEndpoint;
            TokenEndpoint           = EsiaAuthenticationDefaults.TokenEndpoint;
            UserInformationEndpoint = EsiaAuthenticationDefaults.UserInformationEndpoint;

            Scope.Add(EsiaConstants.UserInformationScope);

            ClaimActions.MapJsonKey(ClaimTypes.DateOfBirth, "birthDate");
            ClaimActions.MapJsonKey(ClaimTypes.Gender, "gender");
            ClaimActions.MapJsonKey(ClaimTypes.GivenName, "firstName");
            ClaimActions.MapJsonKey(ClaimTypes.Surname, "lastName");
            ClaimActions.MapJsonKey(EsiaConstants.TrustedUrn, "trusted");
            ClaimActions.MapJsonKey(EsiaConstants.MiddleNameUrn, "middleName");
            ClaimActions.MapJsonKey(EsiaConstants.BirthPlaceUrn, "birthPlace");
            ClaimActions.MapJsonKey(EsiaConstants.CitizenshipUrn, "citizenship");
            ClaimActions.MapJsonKey(EsiaConstants.SnilsUrn, "snils");
            ClaimActions.MapJsonKey(EsiaConstants.InnUrn, "inn");
            ClaimActions.MapJsonSubKey("sub", "profile", "profile_id");
            //ClaimActions.MapCustomJson(ClaimTypes.Name, ParseName);
            //ClaimActions.MapCustomJson(ClaimTypes.Email, obj => ParseContactInfo(obj, "EML"));
            //ClaimActions.MapCustomJson(ClaimTypes.MobilePhone, obj => ParseContactInfo(obj, "MBT"));
            //ClaimActions.MapCustomJson(ClaimTypes.HomePhone, obj => ParseContactInfo(obj, "PHN"));
            //ClaimActions.MapCustomJson(ClaimTypes.OtherPhone, obj => ParseContactInfo(obj, "CPH"));
        }
Exemplo n.º 7
0
        /// <summary>
        /// Initializes a new <see cref="GoogleOptions"/>.
        /// </summary>
        public GoogleOptions()
        {
            CallbackPath            = new PathString("/signin-google");
            AuthorizationEndpoint   = GoogleDefaults.AuthorizationEndpoint;
            TokenEndpoint           = GoogleDefaults.TokenEndpoint;
            UserInformationEndpoint = GoogleDefaults.UserInformationEndpoint;
            Scope.Add("openid");
            Scope.Add("profile");
            Scope.Add("email");

            ClaimActions.MapJsonKey(ClaimTypes.NameIdentifier, "id");
            if (GoogleDefaults.UseGooglePlus)
            {
                ClaimActions.MapJsonKey(ClaimTypes.Name, "displayName");
                ClaimActions.MapJsonSubKey(ClaimTypes.GivenName, "name", "givenName");
                ClaimActions.MapJsonSubKey(ClaimTypes.Surname, "name", "familyName");
                ClaimActions.MapJsonKey("urn:google:profile", "url");
                ClaimActions.MapCustomJson(ClaimTypes.Email, GoogleHelper.GetEmail);
            }
            else
            {
                ClaimActions.MapJsonKey(ClaimTypes.Name, "name");
                ClaimActions.MapJsonKey(ClaimTypes.GivenName, "given_name");
                ClaimActions.MapJsonKey(ClaimTypes.Surname, "family_name");
                ClaimActions.MapJsonKey("urn:google:profile", "link");
                ClaimActions.MapJsonKey(ClaimTypes.Email, "email");
            }
        }
Exemplo n.º 8
0
        public BasecampAuthenticationOptions()
        {
            ClaimsIssuer            = BasecampAuthenticationDefaults.Issuer;
            CallbackPath            = BasecampAuthenticationDefaults.CallbackPath;
            AuthorizationEndpoint   = BasecampAuthenticationDefaults.AuthorizationEndpoint;
            TokenEndpoint           = BasecampAuthenticationDefaults.TokenEndpoint;
            UserInformationEndpoint = BasecampAuthenticationDefaults.UserInformationEndpoint;

            ClaimActions.MapJsonSubKey(ClaimTypes.NameIdentifier, "identity", "id");
            ClaimActions.MapJsonSubKey(ClaimTypes.GivenName, "identity", "first_name");
            ClaimActions.MapJsonSubKey(ClaimTypes.Surname, "identity", "last_name");
            ClaimActions.MapJsonSubKey(ClaimTypes.Email, "identity", "email_address");
        }
Exemplo n.º 9
0
        /// <summary>
        /// Initializes a new <see cref="PodbeanOptions"/>.
        /// </summary>
        public PodbeanOptions()
        {
            CallbackPath            = new PathString("/signin-podbean");
            AuthorizationEndpoint   = PodbeanDefaults.AuthorizationEndpoint;
            TokenEndpoint           = PodbeanDefaults.TokenEndpoint;
            UserInformationEndpoint = PodbeanDefaults.UserInformationEndpoint;
            Scope.Add("podcast_read");
            Scope.Add("episode_read");

            ClaimActions.MapJsonSubKey(ClaimTypes.NameIdentifier, "podcast", "id");
            ClaimActions.MapJsonSubKey(ClaimTypes.Name, "podcast", "title");
            ClaimActions.MapJsonSubKey("urn:podbean:logo", "podcast", "logo");
            ClaimActions.MapJsonSubKey(ClaimTypes.Webpage, "podcast", "link");
        }
        public DropboxAuthenticationOptions()
        {
            ClaimsIssuer = DropboxAuthenticationDefaults.Issuer;

            CallbackPath = new PathString(DropboxAuthenticationDefaults.CallbackPath);

            AuthorizationEndpoint   = DropboxAuthenticationDefaults.AuthorizationEndpoint;
            TokenEndpoint           = DropboxAuthenticationDefaults.TokenEndpoint;
            UserInformationEndpoint = DropboxAuthenticationDefaults.UserInformationEndpoint;

            ClaimActions.MapJsonKey(ClaimTypes.NameIdentifier, "account_id");
            ClaimActions.MapJsonSubKey(ClaimTypes.Name, "name", "display_name");
            ClaimActions.MapJsonKey(ClaimTypes.Email, "email");
        }
        public MailChimpAuthenticationOptions()
        {
            ClaimsIssuer = MailChimpAuthenticationDefaults.Issuer;

            CallbackPath = new PathString(MailChimpAuthenticationDefaults.CallbackPath);

            AuthorizationEndpoint   = MailChimpAuthenticationDefaults.AuthorizationEndpoint;
            TokenEndpoint           = MailChimpAuthenticationDefaults.TokenEndpoint;
            UserInformationEndpoint = MailChimpAuthenticationDefaults.UserInformationEndpoint;

            ClaimActions.MapJsonSubKey(ClaimTypes.NameIdentifier, "login", "login_id");
            ClaimActions.MapJsonKey(ClaimTypes.Name, "accountname");
            ClaimActions.MapJsonSubKey(ClaimTypes.Email, "login", "login_email");
        }
Exemplo n.º 12
0
    public ServiceChannelAuthenticationOptions()
    {
        ClaimsIssuer = ServiceChannelAuthenticationDefaults.Issuer;
        CallbackPath = ServiceChannelAuthenticationDefaults.CallbackPath;

        AuthorizationEndpoint   = ServiceChannelAuthenticationDefaults.AuthorizationEndpoint;
        TokenEndpoint           = ServiceChannelAuthenticationDefaults.TokenEndpoint;
        UserInformationEndpoint = ServiceChannelAuthenticationDefaults.UserInformationEndpoint;

        ClaimActions.MapJsonSubKey(ClaimTypes.NameIdentifier, "UserProfile", "UserId");
        ClaimActions.MapJsonSubKey(ClaimTypes.Name, "UserProfile", "UserName");
        ClaimActions.MapJsonSubKey(ClaimTypes.Email, "UserProfile", "Email");
        ClaimActions.MapJsonSubKey(Claims.ProviderId, "UserProfile", "ProviderId");
        ClaimActions.MapJsonSubKey(Claims.ProviderName, "UserProfile", "ProviderName");
    }
Exemplo n.º 13
0
        public SalesforceAuthenticationOptions()
        {
            ClaimsIssuer = SalesforceAuthenticationDefaults.Issuer;

            CallbackPath = SalesforceAuthenticationDefaults.CallbackPath;

            Environment = SalesforceAuthenticationDefaults.Environment;

            ClaimActions.MapJsonKey(ClaimTypes.NameIdentifier, "user_id");
            ClaimActions.MapJsonKey(ClaimTypes.Name, "username");
            ClaimActions.MapJsonKey(Claims.Email, "email");
            ClaimActions.MapJsonKey(Claims.UtcOffset, "utcOffset");
            ClaimActions.MapJsonSubKey(Claims.RestUrl, "urls", "rest");
            ClaimActions.MapJsonSubKey(Claims.ThumbnailPhoto, "photos", "thumbnail");
        }
Exemplo n.º 14
0
        public LichessAuthenticationOptions()
        {
            ClaimsIssuer = LichessAuthenticationDefaults.Issuer;
            CallbackPath = LichessAuthenticationDefaults.CallbackPath;

            AuthorizationEndpoint   = LichessAuthenticationDefaults.AuthorizationEndpoint;
            TokenEndpoint           = LichessAuthenticationDefaults.TokenEndpoint;
            UserInformationEndpoint = LichessAuthenticationDefaults.UserInformationEndpoint;

            ClaimActions.MapJsonKey(ClaimTypes.NameIdentifier, "id");
            ClaimActions.MapJsonKey(ClaimTypes.Name, "username");
            ClaimActions.MapJsonKey(ClaimTypes.Email, "email");
            ClaimActions.MapJsonSubKey(ClaimTypes.GivenName, "profile", "firstName");
            ClaimActions.MapJsonSubKey(ClaimTypes.Surname, "profile", "lastName");
        }
Exemplo n.º 15
0
    public FoursquareAuthenticationOptions()
    {
        ClaimsIssuer = FoursquareAuthenticationDefaults.Issuer;
        CallbackPath = FoursquareAuthenticationDefaults.CallbackPath;

        AuthorizationEndpoint   = FoursquareAuthenticationDefaults.AuthorizationEndpoint;
        TokenEndpoint           = FoursquareAuthenticationDefaults.TokenEndpoint;
        UserInformationEndpoint = FoursquareAuthenticationDefaults.UserInformationEndpoint;

        ClaimActions.MapJsonKey(ClaimTypes.NameIdentifier, "id");
        ClaimActions.MapJsonKey(ClaimTypes.Surname, "lastName");
        ClaimActions.MapJsonKey(ClaimTypes.GivenName, "firstName");
        ClaimActions.MapJsonKey(ClaimTypes.Gender, "gender");
        ClaimActions.MapJsonKey(ClaimTypes.Uri, "canonicalUrl");
        ClaimActions.MapJsonSubKey(ClaimTypes.Email, "contact", "email");
        ClaimActions.MapCustomJson(ClaimTypes.Name, user => $"{user.GetString("firstName")} {user.GetString("lastName")}".Trim());
    }
Exemplo n.º 16
0
    /// <summary>
    /// Initializes a new instance of the <see cref="TwitterAuthenticationOptions"/> class.
    /// </summary>
    public TwitterAuthenticationOptions()
    {
        ClaimsIssuer = TwitterAuthenticationDefaults.Issuer;
        CallbackPath = TwitterAuthenticationDefaults.CallbackPath;

        AuthorizationEndpoint   = TwitterAuthenticationDefaults.AuthorizationEndpoint;
        TokenEndpoint           = TwitterAuthenticationDefaults.TokenEndpoint;
        UserInformationEndpoint = TwitterAuthenticationDefaults.UserInformationEndpoint;

        UsePkce = true;

        Scope.Add("tweet.read");
        Scope.Add("users.read");

        ClaimActions.MapJsonSubKey(ClaimTypes.Name, "data", "username");
        ClaimActions.MapJsonSubKey(ClaimTypes.NameIdentifier, "data", "id");
        ClaimActions.MapJsonSubKey(Claims.Name, "data", "name");
    }
Exemplo n.º 17
0
        public PatreonAuthenticationOptions()
        {
            ClaimsIssuer = PatreonAuthenticationDefaults.Issuer;

            CallbackPath = PatreonAuthenticationDefaults.CallbackPath;

            AuthorizationEndpoint   = PatreonAuthenticationDefaults.AuthorizationEndpoint;
            TokenEndpoint           = PatreonAuthenticationDefaults.TokenEndpoint;
            UserInformationEndpoint = PatreonAuthenticationDefaults.UserInformationEndpoint;

            Scope.Add("users");
            Scope.Add("pledges-to-me");
            Scope.Add("my-campaign");

            ClaimActions.MapJsonKey(ClaimTypes.NameIdentifier, "id");
            ClaimActions.MapJsonSubKey(ClaimTypes.Name, "attributes", "full_name");
            ClaimActions.MapJsonSubKey(ClaimTypes.Webpage, "attributes", "url");
            ClaimActions.MapJsonSubKey(Claims.Avatar, "attributes", "thumb_url");
        }
Exemplo n.º 18
0
    public PatreonAuthenticationOptions()
    {
        ClaimsIssuer = PatreonAuthenticationDefaults.Issuer;
        CallbackPath = PatreonAuthenticationDefaults.CallbackPath;

        AuthorizationEndpoint   = PatreonAuthenticationDefaults.AuthorizationEndpoint;
        TokenEndpoint           = PatreonAuthenticationDefaults.TokenEndpoint;
        UserInformationEndpoint = PatreonAuthenticationDefaults.UserInformationEndpoint;

        Scope.Add("identity");

        ClaimActions.MapJsonKey(ClaimTypes.NameIdentifier, "id");
        ClaimActions.MapJsonSubKey(ClaimTypes.Email, "attributes", "email");
        ClaimActions.MapJsonSubKey(ClaimTypes.GivenName, "attributes", "first_name");
        ClaimActions.MapJsonSubKey(ClaimTypes.Name, "attributes", "full_name");
        ClaimActions.MapJsonSubKey(ClaimTypes.Surname, "attributes", "last_name");
        ClaimActions.MapJsonSubKey(ClaimTypes.Webpage, "attributes", "url");
        ClaimActions.MapJsonSubKey(Claims.Avatar, "attributes", "thumb_url");
    }
        /// <summary>
        /// Initializes a new instance of the <see cref="ShopifyAuthenticationOptions"/> class.
        /// </summary>
        public ShopifyAuthenticationOptions()
        {
            ClaimsIssuer            = ShopifyAuthenticationDefaults.Issuer;
            CallbackPath            = ShopifyAuthenticationDefaults.CallbackPath;
            AuthorizationEndpoint   = ShopifyAuthenticationDefaults.AuthorizationEndpointFormat;
            TokenEndpoint           = ShopifyAuthenticationDefaults.TokenEndpointFormat;
            UserInformationEndpoint = ShopifyAuthenticationDefaults.UserInformationEndpointFormat;

            ClaimActions.MapJsonSubKey(ClaimTypes.NameIdentifier, "shop", "myshopify_domain");
            ClaimActions.MapJsonSubKey(ClaimTypes.Name, "shop", "name");
            ClaimActions.MapJsonSubKey(ClaimTypes.Webpage, "shop", "domain");
            ClaimActions.MapJsonSubKey(ClaimTypes.Email, "shop", "email");
            ClaimActions.MapJsonSubKey(ClaimTypes.Country, "shop", "country_code");
            ClaimActions.MapJsonSubKey(ClaimTypes.StateOrProvince, "shop", "province_code");
            ClaimActions.MapJsonSubKey(ClaimTypes.PostalCode, "shop", "zip");
            ClaimActions.MapJsonSubKey(ClaimTypes.Locality, "shop", "primary_locale");
            ClaimActions.MapJsonSubKey(ShopifyAuthenticationDefaults.ShopifyPlanNameClaimType, "shop", "plan_name");
            ClaimActions.MapJsonSubKey(ShopifyAuthenticationDefaults.ShopifyEligibleForPaymentsClaimType, "shop", "eligible_for_payments", ClaimValueTypes.Boolean);
            ClaimActions.MapJsonSubKey(ShopifyAuthenticationDefaults.ShopifyTimezoneClaimType, "shop", "timezone");
        }
        public SlackAuthenticationOptions()
        {
            ClaimsIssuer = SlackAuthenticationDefaults.Issuer;

            CallbackPath = SlackAuthenticationDefaults.CallbackPath;

            AuthorizationEndpoint   = SlackAuthenticationDefaults.AuthorizationEndpoint;
            TokenEndpoint           = SlackAuthenticationDefaults.TokenEndpoint;
            UserInformationEndpoint = SlackAuthenticationDefaults.UserInformationEndpoint;

            ClaimActions.MapCustomJson(ClaimTypes.NameIdentifier, user =>
                                       string.Concat(user.GetProperty("team").GetString("id"), "|", user.GetProperty("user").GetString("id")));
            ClaimActions.MapJsonSubKey(ClaimTypes.Name, "user", "name");
            ClaimActions.MapJsonSubKey(ClaimTypes.Email, "user", "email");
            ClaimActions.MapJsonSubKey(Claims.UserId, "user", "id");
            ClaimActions.MapJsonSubKey(Claims.TeamId, "team", "id");
            ClaimActions.MapJsonSubKey(Claims.TeamName, "team", "name");

            Scope.Add("identity.basic");
        }
Exemplo n.º 21
0
        public SlackAuthenticationOptions()
        {
            ClaimsIssuer = SlackAuthenticationDefaults.Issuer;

            CallbackPath = new PathString(SlackAuthenticationDefaults.CallbackPath);

            AuthorizationEndpoint   = SlackAuthenticationDefaults.AuthorizationEndpoint;
            TokenEndpoint           = SlackAuthenticationDefaults.TokenEndpoint;
            UserInformationEndpoint = SlackAuthenticationDefaults.UserInformationEndpoint;

            ClaimActions.MapCustomJson(ClaimTypes.NameIdentifier, user =>
                                       string.Concat(user["team"]["id"], "|", user["user"]["id"]));
            ClaimActions.MapJsonSubKey(ClaimTypes.Name, "user", "name");
            ClaimActions.MapJsonSubKey(ClaimTypes.Email, "user", "email");
            ClaimActions.MapJsonSubKey("urn:slack:user_id", "user", "id");
            ClaimActions.MapJsonSubKey("urn:slack:team_id", "team", "id");
            ClaimActions.MapJsonSubKey("urn:slack:team_name", "team", "name");

            Scope.Add("identity.basic");
        }
Exemplo n.º 22
0
        public SpotifyAuthenticationOptions()
        {
            ClaimsIssuer = SpotifyAuthenticationDefaults.Issuer;

            CallbackPath = new PathString(SpotifyAuthenticationDefaults.CallbackPath);

            AuthorizationEndpoint   = SpotifyAuthenticationDefaults.AuthorizationEndpoint;
            TokenEndpoint           = SpotifyAuthenticationDefaults.TokenEndpoint;
            UserInformationEndpoint = SpotifyAuthenticationDefaults.UserInformationEndpoint;

            ClaimActions.MapJsonKey(ClaimTypes.NameIdentifier, "id");
            ClaimActions.MapJsonKey(ClaimTypes.Name, "display_name");
            ClaimActions.MapJsonKey(ClaimTypes.Email, "email");
            ClaimActions.MapJsonKey(ClaimTypes.DateOfBirth, "birthdate");
            ClaimActions.MapJsonKey(ClaimTypes.Country, "country");
            ClaimActions.MapJsonKey(ClaimTypes.Uri, "uri");
            ClaimActions.MapJsonKey(Claims.Product, "product");
            ClaimActions.MapJsonSubKey(Claims.Url, "external_urls", "spotify");
            ClaimActions.MapCustomJson(Claims.ProfilePicture, user => user.Value <JArray>("images")?.First?.Value <string>("url"));
        }
Exemplo n.º 23
0
    public MixcloudAuthenticationOptions()
    {
        ClaimsIssuer = MixcloudAuthenticationDefaults.Issuer;
        CallbackPath = MixcloudAuthenticationDefaults.CallbackPath;

        AuthorizationEndpoint   = MixcloudAuthenticationDefaults.AuthorizationEndpoint;
        TokenEndpoint           = MixcloudAuthenticationDefaults.TokenEndpoint;
        UserInformationEndpoint = MixcloudAuthenticationDefaults.UserInformationEndpoint;

        ClaimActions.MapJsonKey(ClaimTypes.NameIdentifier, "key");
        ClaimActions.MapJsonKey(ClaimTypes.Name, "username");
        ClaimActions.MapJsonKey(Claims.FullName, "name");
        ClaimActions.MapJsonKey(Claims.Biography, "biog");
        ClaimActions.MapJsonKey(Claims.City, "city");
        ClaimActions.MapJsonKey(ClaimTypes.Country, "country");

        ClaimActions.MapJsonKey(Claims.ProfileUrl, "url");
        ClaimActions.MapJsonSubKey(Claims.ProfileImageUrl, "pictures", "320wx320h");
        ClaimActions.MapJsonSubKey(Claims.ProfileThumbnailUrl, "pictures", "thumbnail");
    }
Exemplo n.º 24
0
        /// <summary>
        /// Initializes a new <see cref="KakaoOptions"/>.
        /// </summary>
        public KakaoOptions()
        {
            CallbackPath            = new PathString("/signin-kakao");
            AuthorizationEndpoint   = KakaoDefaults.AuthorizationEndpoint;
            TokenEndpoint           = KakaoDefaults.TokenEndpoint;
            UserInformationEndpoint = KakaoDefaults.UserInformationEndpoint;
            Scope.Add("r_basicprofile");
            Scope.Add("r_emailaddress");
            Scope.Add("email");

            ClaimActions.MapJsonKey(ClaimTypes.NameIdentifier, "id");
            ClaimActions.MapJsonKey(ClaimTypes.Email, "kaccount_email");
            ClaimActions.MapJsonSubKey(ClaimTypes.Name, "properties", "nickname");
            ClaimActions.MapJsonSubKey("urn:kakao:thumbnail", "properties", "url");
            //ClaimActions.MapJsonSubKey(ClaimTypes.Name, "properties", "nickname");
            //ClaimActions.MapJsonSubKey(ClaimTypes.GivenName, "name", "givenName");
            //ClaimActions.MapJsonSubKey(ClaimTypes.Surname, "name", "familyName");
            //ClaimActions.MapJsonSubKey("urn:kakao:thumenail", "properties", "url");
            //ClaimActions.MapCustomJson(ClaimTypes.Email, KakaoHelper.GetEmail);
        }
Exemplo n.º 25
0
        /// <summary>
        /// Initializes a new <see cref="SpaceOptions"/>.
        /// </summary>
        public SpaceOptions()
        {
            CallbackPath = new PathString("/signin-space");

            AuthorizationEndpoint   = SpaceDefaults.AuthorizationEndpointPath;
            TokenEndpoint           = SpaceDefaults.TokenEndpointPath;
            UserInformationEndpoint = SpaceDefaults.UserInformationEndpointPath;

            ClaimActions.MapJsonKey(ClaimTypes.NameIdentifier, "id");
            ClaimActions.MapJsonKey(SpaceClaimTypes.UserId, "id");
            ClaimActions.MapJsonKey(SpaceClaimTypes.UserName, "username");
            ClaimActions.MapCustomJson(SpaceClaimTypes.SmallAvatar, element => element.TryGetProperty("smallAvatar", out var p) && ServerUrl != null ? ServerUrl.ToString().TrimEnd('/') + "/d/" + p.GetString() : null);
            ClaimActions.MapCustomJson(SpaceClaimTypes.ProfilePicture, element => element.TryGetProperty("profilePicture", out var p) && ServerUrl != null ? ServerUrl.ToString().TrimEnd('/') + "/d/" + p.GetString() : null);
            ClaimActions.MapJsonSubKey(SpaceClaimTypes.FirstName, "name", "firstName");
            ClaimActions.MapJsonSubKey(SpaceClaimTypes.LastName, "name", "lastName");
            ClaimActions.MapCustomJson(ClaimTypes.Name, element =>
            {
                if (element.TryGetProperty("name", out var nameElement) && nameElement.ValueKind == JsonValueKind.Object)
                {
                    return(nameElement.TryGetProperty("firstName", out var firstName) &&
                           nameElement.TryGetProperty("lastName", out var lastName)
                        ? $"{firstName} {lastName}"
                        : null);
                }

                return(null);
            });
            ClaimActions.MapCustomJson(ClaimTypes.Email, element =>
            {
                if (element.TryGetProperty("emails", out var emailElements) && emailElements.ValueKind == JsonValueKind.Array)
                {
                    var emailElement = emailElements.EnumerateArray().FirstOrDefault();
                    if (emailElement.TryGetProperty("email", out var email))
                    {
                        return(email.GetString());
                    }
                }

                return(null);
            });
        }
Exemplo n.º 26
0
    public AdobeIOAuthenticationOptions()
    {
        ClaimsIssuer = AdobeIOAuthenticationDefaults.Issuer;
        CallbackPath = AdobeIOAuthenticationDefaults.CallbackPath;

        AuthorizationEndpoint   = AdobeIOAuthenticationDefaults.AuthorizationEndpoint;
        TokenEndpoint           = AdobeIOAuthenticationDefaults.TokenEndpoint;
        UserInformationEndpoint = AdobeIOAuthenticationDefaults.UserInformationEndpoint;

        Scope.Add("openid");
        Scope.Add("AdobeID");

        ClaimActions.MapJsonKey(ClaimTypes.NameIdentifier, "sub");
        ClaimActions.MapJsonKey(ClaimTypes.Name, "name");
        ClaimActions.MapJsonKey(ClaimTypes.Email, "email");
        ClaimActions.MapJsonKey(ClaimTypes.GivenName, "given_name");
        ClaimActions.MapJsonKey(ClaimTypes.Surname, "family_name");
        ClaimActions.MapJsonSubKey(ClaimTypes.Country, "address", "country");
        ClaimActions.MapJsonKey(Claims.AccountType, "account_type");
        ClaimActions.MapJsonKey(Claims.EmailVerified, "email_verified");
    }
Exemplo n.º 27
0
        /// <summary>
        /// Initializes a new <see cref="NaverOptions"/>.
        /// </summary>
        public NaverOptions()
        {
            CallbackPath            = new PathString("/signin-naver");
            AuthorizationEndpoint   = NaverDefaults.AuthorizationEndpoint;
            TokenEndpoint           = NaverDefaults.TokenEndpoint;
            UserInformationEndpoint = NaverDefaults.UserInformationEndpoint;
            Scope.Add("r_basicprofile");
            Scope.Add("r_emailaddress");
            Scope.Add("email");

            ClaimActions.MapJsonSubKey(ClaimTypes.NameIdentifier, "response", "id");
            ClaimActions.MapJsonSubKey(ClaimTypes.Name, "response", "nickname");
            ClaimActions.MapJsonSubKey(ClaimTypes.Email, "response", "email");

            //ClaimActions.MapJsonKey(ClaimTypes.NameIdentifier, "id");
            //ClaimActions.MapJsonKey(ClaimTypes.Name, "displayName");
            //ClaimActions.MapJsonSubKey(ClaimTypes.GivenName, "name", "givenName");
            //ClaimActions.MapJsonSubKey(ClaimTypes.Surname, "name", "familyName");
            //ClaimActions.MapJsonKey("urn:Naver:profile", "url");
            //ClaimActions.MapCustomJson(ClaimTypes.Email, NaverHelper.GetEmail);
        }
        public HarvestAuthenticationOptions()
        {
            ClaimsIssuer = HarvestAuthenticationDefaults.Issuer;

            CallbackPath = new PathString(HarvestAuthenticationDefaults.CallbackPath);

            AuthorizationEndpoint   = HarvestAuthenticationDefaults.AuthorizationEndpoint;
            TokenEndpoint           = HarvestAuthenticationDefaults.TokenEndpoint;
            UserInformationEndpoint = HarvestAuthenticationDefaults.UserInformationEndpoint;


            ClaimActions.MapJsonSubKey(ClaimTypes.NameIdentifier, "user", "id");
            ClaimActions.MapCustomJson(ClaimTypes.Name, payload =>
            {
                var user  = payload.Value <JObject>("user");
                var parts = new[] { user.Value <string>("first_name"), user.Value <string>("last_name") };
                return(string.Join(" ", parts.Where(x => !string.IsNullOrEmpty(x))));
            });
            ClaimActions.MapJsonSubKey(ClaimTypes.GivenName, "user", "first_name");
            ClaimActions.MapJsonSubKey(ClaimTypes.Surname, "user", "last_name");
            ClaimActions.MapJsonSubKey(ClaimTypes.Email, "user", "email");
        }
Exemplo n.º 29
0
    public StreamlabsAuthenticationOptions()
    {
        ClaimsIssuer = StreamlabsAuthenticationDefaults.Issuer;
        CallbackPath = StreamlabsAuthenticationDefaults.CallbackPath;

        AuthorizationEndpoint = StreamlabsAuthenticationDefaults.AuthorizationEndPoint;
        TokenEndpoint = StreamlabsAuthenticationDefaults.TokenEndpoint;
        UserInformationEndpoint = StreamlabsAuthenticationDefaults.UserInformationEndpoint;

        ClaimActions.MapJsonSubKey(ClaimTypes.NameIdentifier, "streamlabs", "id");
        ClaimActions.MapJsonSubKey(ClaimTypes.Name, "streamlabs", "username");
        ClaimActions.MapJsonSubKey(Claims.DisplayName, "streamlabs", "display_name");
        ClaimActions.MapJsonSubKey(Claims.FacebookId, "facebook", "id");
        ClaimActions.MapJsonSubKey(Claims.FacebookName, "facebook", "name");
        ClaimActions.MapJsonSubKey(Claims.Primary, "streamlabs", "primary");
        ClaimActions.MapJsonSubKey(Claims.Thumbnail, "streamlabs", "thumbnail");
        ClaimActions.MapJsonSubKey(Claims.TwitchDisplayName, "twitch", "display_name");
        ClaimActions.MapJsonSubKey(Claims.TwitchIconUrl, "twitch", "icon_url");
        ClaimActions.MapJsonSubKey(Claims.TwitchId, "twitch", "id");
        ClaimActions.MapJsonSubKey(Claims.TwitchName, "twitch", "name");
        ClaimActions.MapJsonSubKey(Claims.YouTubeId, "youtube", "id");
        ClaimActions.MapJsonSubKey(Claims.YouTubeTitle, "youtube", "title");
    }