public LinkedInAuthenticationOptions()
        {
            ClaimsIssuer = LinkedInAuthenticationDefaults.Issuer;

            CallbackPath = new PathString(LinkedInAuthenticationDefaults.CallbackPath);

            AuthorizationEndpoint   = LinkedInAuthenticationDefaults.AuthorizationEndpoint;
            TokenEndpoint           = LinkedInAuthenticationDefaults.TokenEndpoint;
            UserInformationEndpoint = LinkedInAuthenticationDefaults.UserInformationEndpoint;
            EmailAddressEndpoint    = LinkedInAuthenticationDefaults.EmailAddressEndpoint;

            Scope.Add("r_liteprofile");
            Scope.Add("r_emailaddress");

            ClaimActions.MapJsonKey(ClaimTypes.NameIdentifier, ProfileFields.Id);
            ClaimActions.MapJsonKey(ClaimTypes.Email, LinkedInAuthenticationConstants.EmailAddressField);
            ClaimActions.MapCustomJson(ClaimTypes.Name, user => GetFullName(user));
            ClaimActions.MapCustomJson(ClaimTypes.GivenName, user => GetMultiLocaleString(user, ProfileFields.FirstName));
            ClaimActions.MapCustomJson(ClaimTypes.Surname, user => GetMultiLocaleString(user, ProfileFields.LastName));
            ClaimActions.MapCustomJson(Claims.PictureUrl, user => GetPictureUrls(user)?.LastOrDefault());
            ClaimActions.MapCustomJson(Claims.PictureUrls, user =>
            {
                var urls = GetPictureUrls(user);
                return(urls == null ? null : string.Join(",", urls));
            });
        }
Пример #2
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");
    }
Пример #3
0
        /// <summary>
        /// Configuration options for <see cref="StravaHandler"/>.
        /// </summary>
        public StravaOptions()
        {
            ClaimsIssuer = StravaDefaults.Issuer;

            CallbackPath = new PathString(StravaDefaults.CallbackPath);

            AuthorizationEndpoint   = StravaDefaults.AuthorizationEndpoint;
            TokenEndpoint           = StravaDefaults.TokenEndpoint;
            UserInformationEndpoint = StravaDefaults.UserInformationEndpoint;

            Scope.Add("public");

            ClaimActions.MapJsonKey(ClaimTypes.NameIdentifier, "id");
            ClaimActions.MapJsonKey(ClaimTypes.Name, "username");
            ClaimActions.MapJsonKey(ClaimTypes.GivenName, "firstname");
            ClaimActions.MapJsonKey(ClaimTypes.Surname, "lastname");
            ClaimActions.MapJsonKey(ClaimTypes.Email, "email");
            ClaimActions.MapJsonKey(ClaimTypes.StateOrProvince, "state");
            ClaimActions.MapJsonKey(ClaimTypes.Country, "country");
            ClaimActions.MapJsonKey(ClaimTypes.Gender, "sex");
            ClaimActions.MapJsonKey("urn:strava:city", "city");
            ClaimActions.MapJsonKey("urn:strava:profile", "profile");
            ClaimActions.MapJsonKey("urn:strava:profile-medium", "profile_medium");
            ClaimActions.MapJsonKey("urn:strava:created-at", "created_at");
            ClaimActions.MapJsonKey("urn:strava:updated-at", "updated_at");
            ClaimActions.MapJsonKey("urn:strava:premium", "premium");
        }
        public LinkedInAuthenticationOptions()
        {
            ClaimsIssuer = LinkedInAuthenticationDefaults.Issuer;

            CallbackPath = new PathString(LinkedInAuthenticationDefaults.CallbackPath);

            AuthorizationEndpoint   = LinkedInAuthenticationDefaults.AuthorizationEndpoint;
            TokenEndpoint           = LinkedInAuthenticationDefaults.TokenEndpoint;
            UserInformationEndpoint = LinkedInAuthenticationDefaults.UserInformationEndpoint;

            ClaimActions.MapJsonKey(ClaimTypes.NameIdentifier, "id");
            ClaimActions.MapJsonKey(ClaimTypes.Email, "emailAddress");
            ClaimActions.MapJsonKey(ClaimTypes.Name, "formattedName");
            ClaimActions.MapJsonKey(ClaimTypes.GivenName, "firstName");
            ClaimActions.MapJsonKey(ClaimTypes.Surname, "lastName");
            ClaimActions.MapJsonKey(Claims.MaidenName, "maidenName");
            ClaimActions.MapJsonKey(Claims.ProfileUrl, "publicProfileUrl");
            ClaimActions.MapJsonKey(Claims.PictureUrl, "pictureUrl");
            ClaimActions.MapJsonKey(Claims.Industry, "industry");
            ClaimActions.MapJsonKey(Claims.Summary, "summary");
            ClaimActions.MapJsonKey(Claims.Headline, "headline");
            ClaimActions.MapCustomJson(Claims.Positions, user => user["positions"]?.ToString());
            ClaimActions.MapJsonKey(Claims.PhoneticFirstName, "phoneticFirstName");
            ClaimActions.MapJsonKey(Claims.PhoneticLastName, "phoneticLastName");
            ClaimActions.MapJsonKey(Claims.FormattedPhoneticName, "formattedPhoneticName");
            ClaimActions.MapCustomJson(Claims.Location, user => user["location"]?.ToString());
            ClaimActions.MapJsonKey(Claims.Specialties, "specialties");
            ClaimActions.MapJsonKey(Claims.NumConnections, "numConnections");
            ClaimActions.MapJsonKey(Claims.NumConnectionsCapped, "numConnectionsCapped");
            ClaimActions.MapJsonKey(Claims.CurrentShare, "currentShare");
            ClaimActions.MapCustomJson(Claims.PictureUrls, user => user["pictureUrls"]?.ToString());
        }
Пример #5
0
        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.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"));
        }
        public WeixinAuthenticationOptions()
        {
            ClaimsIssuer = WeixinAuthenticationDefaults.Issuer;
            CallbackPath = WeixinAuthenticationDefaults.CallbackPath;

            AuthorizationEndpoint   = WeixinAuthenticationDefaults.AuthorizationEndpoint;
            TokenEndpoint           = WeixinAuthenticationDefaults.TokenEndpoint;
            UserInformationEndpoint = WeixinAuthenticationDefaults.UserInformationEndpoint;

            Scope.Add("snsapi_login");
            Scope.Add("snsapi_userinfo");

            ClaimActions.MapJsonKey(ClaimTypes.NameIdentifier, "unionid");
            ClaimActions.MapJsonKey(ClaimTypes.Name, "nickname");
            ClaimActions.MapJsonKey(ClaimTypes.Gender, "sex");
            ClaimActions.MapJsonKey(ClaimTypes.Country, "country");
            ClaimActions.MapJsonKey(Claims.OpenId, "openid");
            ClaimActions.MapJsonKey(Claims.Province, "province");
            ClaimActions.MapJsonKey(Claims.City, "city");
            ClaimActions.MapJsonKey(Claims.HeadImgUrl, "headimgurl");
            ClaimActions.MapCustomJson(Claims.Privilege, user =>
            {
                if (!user.TryGetProperty("privilege", out var value) || value.ValueKind != System.Text.Json.JsonValueKind.Array)
                {
                    return(null);
                }

                return(string.Join(',', value.EnumerateArray().Select(element => element.GetString())));
            });
        }
Пример #7
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);
        });
    }
Пример #8
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");
        }
Пример #9
0
        /// <summary>
        /// Constructs a new <see cref="SpotifyOptions"/>
        /// </summary>
        public SpotifyOptions()
        {
            //The base constructor calls base.Validate() because we inherited
            //from OauthOptions it comes with default string null / empty check
            //for fields such as client id
            CallbackPath            = new PathString("/signin-callback");
            AuthorizationEndpoint   = SpotifyDefaults.AuthorizationEndpoint;
            TokenEndpoint           = SpotifyDefaults.TokenEndpoint;
            UserInformationEndpoint = SpotifyDefaults.UserInformationEndpoint;
            //spotify auth is separate from it's open id server (most likely private/internally used only)
            //Scope.Add("openid"); //This makes it an open id connection  authentication shake

            ClaimActions.MapJsonKey($"{SpotifyDefaults.Issuer}:{ClaimTypes.Country}", "country");
            ClaimActions.MapJsonKey($"{SpotifyDefaults.Issuer}:{ClaimTypes.Name}", "display_name");
            ClaimActions.MapJsonKey($"{SpotifyDefaults.Issuer}:{ClaimTypes.Email}", "email");
            ClaimActions.MapJsonKey($"{SpotifyDefaults.Issuer}:{ClaimTypes.NameIdentifier}", "id");
            ClaimActions.MapJsonKey($"{SpotifyDefaults.Issuer}:{ClaimTypes.DateOfBirth}", "birthdate");
            ClaimActions.MapJsonKey($"{SpotifyDefaults.Issuer}:{ClaimTypes.Uri}", "uri");

            ClaimActions.MapCustomJson($"{SpotifyDefaults.Issuer}{SpotifyDefaults.ClaimType.ProfilePicture}",
                                       x => x.TryGetProperty($"{SpotifyDefaults.ClaimType.ProfilePicture}", out var imageArrayBlob) ? imageArrayBlob.ToString() : null);

            ClaimActions.MapCustomJson($"{SpotifyDefaults.Issuer}:{SpotifyDefaults.ClaimType.ExternalUrls}",
                                       x => x.TryGetProperty($"{SpotifyDefaults.ClaimType.ExternalUrls}", out var externalUrl) ? externalUrl.ToString() : null);

            ClaimActions.MapCustomJson($"{SpotifyDefaults.Issuer}{SpotifyDefaults.ClaimType.Followers}",
                                       x => x.TryGetProperty($"{SpotifyDefaults.ClaimType.Followers}", out var followers) ? followers.ToString() : null);

            ClaimActions.MapCustomJson($"{SpotifyDefaults.Issuer}{SpotifyDefaults.ClaimType.ExplicitContent}",
                                       x => x.TryGetProperty($"{SpotifyDefaults.ClaimType.ExplicitContent}", out var followers) ? followers.ToString() : null);
        }
Пример #10
0
        public BaiduAuthenticationOptions()
        {
            ClaimsIssuer = BaiduAuthenticationDefaults.Issuer;
            CallbackPath = new PathString(BaiduAuthenticationDefaults.CallbackPath);

            AuthorizationEndpoint   = BaiduAuthenticationDefaults.AuthorizationEndpoint;
            TokenEndpoint           = BaiduAuthenticationDefaults.TokenEndpoint;
            UserInformationEndpoint = BaiduAuthenticationDefaults.UserInformationEndpoint;

            Scope.Add("basic");

            ClaimActions.MapJsonKey(ClaimTypes.NameIdentifier, "userid");
            ClaimActions.MapJsonKey(ClaimTypes.Name, "username");
            //"1"表示男,"0"表示女。
            ClaimActions.MapJsonKey(ClaimTypes.Gender, "sex", ClaimValueTypes.Integer);

            ClaimActions.MapJsonKey(Claims.UserId, "userid");
            ClaimActions.MapJsonKey(Claims.UserName, "username");
            ClaimActions.MapJsonKey(Claims.RealName, "realname");
            ClaimActions.MapJsonKey(Claims.Portrait, "portrait");
            ClaimActions.MapJsonKey(Claims.UserDetail, "userdetail");
            ClaimActions.MapJsonKey(Claims.Birthday, "birthday");
            ClaimActions.MapJsonKey(Claims.Marriage, "marriage");
            ClaimActions.MapJsonKey(Claims.Blood, "blood");
            ClaimActions.MapJsonKey(Claims.Figure, "figure");
            ClaimActions.MapJsonKey(Claims.Constellation, "constellation");
            ClaimActions.MapJsonKey(Claims.Education, "education");
            ClaimActions.MapJsonKey(Claims.Trade, "trade");
            ClaimActions.MapJsonKey(Claims.Job, "job");
        }
Пример #11
0
        /// <summary>
        /// Initializes a new <see cref="SuperOfficeAuthenticationOptions"/>. Default environment is Development (SOD).
        /// </summary>
        public SuperOfficeAuthenticationOptions()
        {
            Environment  = SuperOfficeAuthenticationEnvironment.Development;
            CallbackPath = SuperOfficeAuthenticationDefaults.CallbackPath;
            Scope.Add("openid");

            ClaimActions.MapJsonKey(ClaimTypes.Name, SuperOfficeAuthenticationConstants.PrincipalNames.FullName);

            ClaimActions.MapJsonKey(SuperOfficeAuthenticationConstants.ClaimNames.AssociateId, SuperOfficeAuthenticationConstants.PrincipalNames.AssociateId);
            ClaimActions.MapJsonKey(SuperOfficeAuthenticationConstants.ClaimNames.Email, SuperOfficeAuthenticationConstants.PrincipalNames.EmailAddress);
            ClaimActions.MapJsonKey(SuperOfficeAuthenticationConstants.ClaimNames.UserPrincipalName, SuperOfficeAuthenticationConstants.PrincipalNames.Associate);

            ClaimActions.MapJsonKey(SuperOfficeAuthenticationConstants.PrincipalNames.BusinessId, SuperOfficeAuthenticationConstants.PrincipalNames.BusinessId);
            ClaimActions.MapJsonKey(SuperOfficeAuthenticationConstants.PrincipalNames.CategoryId, SuperOfficeAuthenticationConstants.PrincipalNames.CategoryId);
            ClaimActions.MapJsonKey(SuperOfficeAuthenticationConstants.PrincipalNames.ContactId, SuperOfficeAuthenticationConstants.PrincipalNames.ContactId);
            ClaimActions.MapJsonKey(SuperOfficeAuthenticationConstants.PrincipalNames.ContextIdentifier, SuperOfficeAuthenticationConstants.PrincipalNames.DatabaseContextIdentifier);
            ClaimActions.MapJsonKey(SuperOfficeAuthenticationConstants.PrincipalNames.CountryId, SuperOfficeAuthenticationConstants.PrincipalNames.CountryId);
            ClaimActions.MapJsonKey(SuperOfficeAuthenticationConstants.PrincipalNames.GroupId, SuperOfficeAuthenticationConstants.PrincipalNames.GroupId);
            ClaimActions.MapJsonKey(SuperOfficeAuthenticationConstants.PrincipalNames.HomeCountryId, SuperOfficeAuthenticationConstants.PrincipalNames.HomeCountryId);
            ClaimActions.MapJsonKey(SuperOfficeAuthenticationConstants.PrincipalNames.PersonId, SuperOfficeAuthenticationConstants.PrincipalNames.PersonId);
            ClaimActions.MapJsonKey(SuperOfficeAuthenticationConstants.PrincipalNames.RoleName, SuperOfficeAuthenticationConstants.PrincipalNames.RoleName);
            ClaimActions.MapJsonKey(SuperOfficeAuthenticationConstants.PrincipalNames.RoleId, SuperOfficeAuthenticationConstants.PrincipalNames.RoleId);
            ClaimActions.MapJsonKey(SuperOfficeAuthenticationConstants.PrincipalNames.SecondaryGroups, SuperOfficeAuthenticationConstants.PrincipalNames.SecondaryGroups);

            // Add a custom claim action to map FunctionRights to claims
            ClaimActions.Add(new SuperOfficeFunctionalRightsClaimAction(this));
        }
        public WeChatOfficialOAuthOptions()
        {
            // 用于防止初始化错误,会在OAuthHandler.InitializeHandlerAsync中进行重写
            ClientId     = "WeChatOfficial";
            ClientSecret = "WeChatOfficial";

            ClaimsIssuer = WeChatOfficialOAuthConsts.ProviderKey;
            CallbackPath = new PathString(WeChatOfficialOAuthConsts.CallbackPath);

            AuthorizationEndpoint   = WeChatOfficialOAuthConsts.AuthorizationEndpoint;
            TokenEndpoint           = WeChatOfficialOAuthConsts.TokenEndpoint;
            UserInformationEndpoint = WeChatOfficialOAuthConsts.UserInformationEndpoint;

            Scope.Add(WeChatOfficialOAuthConsts.LoginScope);
            Scope.Add(WeChatOfficialOAuthConsts.UserInfoScope);

            // 这个原始的属性一定要写进去,框架与UserLogin.ProviderKey进行关联判断是否绑定微信
            ClaimActions.MapJsonKey(ClaimTypes.NameIdentifier, "openid");
            ClaimActions.MapJsonKey(ClaimTypes.Name, "nickname");

            // 把自定义的身份标识写进令牌
            ClaimActions.MapJsonKey(AbpWeChatClaimTypes.OpenId, "openid");
            ClaimActions.MapJsonKey(AbpWeChatClaimTypes.UnionId, "unionid");// 公众号如果与小程序关联,这个可以用上
            ClaimActions.MapJsonKey(AbpWeChatClaimTypes.NickName, "nickname");
            ClaimActions.MapJsonKey(AbpWeChatClaimTypes.Sex, "sex", ClaimValueTypes.Integer);
            ClaimActions.MapJsonKey(AbpWeChatClaimTypes.Country, "country");
            ClaimActions.MapJsonKey(AbpWeChatClaimTypes.Province, "province");
            ClaimActions.MapJsonKey(AbpWeChatClaimTypes.City, "city");
            ClaimActions.MapJsonKey(AbpWeChatClaimTypes.AvatarUrl, "headimgurl");
            ClaimActions.MapCustomJson(AbpWeChatClaimTypes.Privilege, user =>
            {
                return(string.Join(",", user.GetStrings("privilege")));
            });
        }
Пример #13
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");
            }
        }
Пример #14
0
        public QQAuthenticationOptions()
        {
            ClaimsIssuer = QQAuthenticationDefaults.Issuer;
            CallbackPath = new PathString(QQAuthenticationDefaults.CallbackPath);

            AuthorizationEndpoint      = QQAuthenticationDefaults.AuthorizationEndpoint;
            TokenEndpoint              = QQAuthenticationDefaults.TokenEndpoint;
            UserIdentificationEndpoint = QQAuthenticationDefaults.UserIdentificationEndpoint;
            UserInformationEndpoint    = QQAuthenticationDefaults.UserInformationEndpoint;

            Scope.Add("get_user_info");

            ClaimActions.MapJsonKey(ClaimTypes.NameIdentifier, "openid");
            ClaimActions.MapJsonKey(ClaimTypes.Name, "nickname");
            ClaimActions.MapJsonKey(ClaimTypes.Gender, "gender");

            ClaimActions.MapJsonKey(Claims.NickName, "nickname");
            ClaimActions.MapJsonKey(Claims.PictureUrl, "figureurl");
            ClaimActions.MapJsonKey(Claims.PictureMediumUrl, "figureurl_1");
            ClaimActions.MapJsonKey(Claims.PictureFullUrl, "figureurl_2");
            ClaimActions.MapJsonKey(Claims.AvatarUrl, "figureurl_qq_1");
            ClaimActions.MapJsonKey(Claims.AvatarFullUrl, "figureurl_qq_2");
            ClaimActions.MapJsonKey(Claims.IsYellowVip, "is_yellow_vip");
            ClaimActions.MapJsonKey(Claims.Vip, "vip");
            ClaimActions.MapJsonKey(Claims.YellowVipLevel, "yellow_vip_level");
            ClaimActions.MapJsonKey(Claims.Level, "level");
            ClaimActions.MapJsonKey(Claims.IsYellowYearVip, "is_yellow_year_vip");
        }
        public AuthenticationOptions()
        {
            ClaimsIssuer = AuthenticationDefaults.Issuer;

            CallbackPath = AuthenticationDefaults.CallbackPath;

            AuthorizationEndpoint   = AuthenticationDefaults.AuthorizationEndpoint;
            TokenEndpoint           = AuthenticationDefaults.TokenEndpoint;
            UserInformationEndpoint = AuthenticationDefaults.UserInformationEndpoint;
            DeauthorizationEndpoint = AuthenticationDefaults.DeauthorizationEndpoint;

            ClaimActions.MapJsonKey(ClaimTypes.NameIdentifier, "id");
            ClaimActions.MapJsonKey(ClaimTypes.Name, "username");
            ClaimActions.MapJsonKey(ClaimTypes.GivenName, "firstname");
            ClaimActions.MapJsonKey(ClaimTypes.Surname, "lastname");
            ClaimActions.MapJsonKey(ClaimTypes.Email, "email");
            ClaimActions.MapJsonKey(ClaimTypes.StateOrProvince, "state");
            ClaimActions.MapJsonKey(ClaimTypes.Country, "country");
            ClaimActions.MapJsonKey(ClaimTypes.Gender, "sex");
            ClaimActions.MapJsonKey(Claims.City, "city");
            ClaimActions.MapJsonKey(Claims.Profile, "profile");
            ClaimActions.MapJsonKey(Claims.ProfileMedium, "profile_medium");
            ClaimActions.MapJsonKey(Claims.CreatedAt, "created_at");
            ClaimActions.MapJsonKey(Claims.UpdatedAt, "updated_at");
            ClaimActions.MapJsonKey(Claims.Premium, "premium");
        }
Пример #16
0
        public WeiChatAuthenticationOptions()
        {
            ClaimsIssuer = WeiChatAuthenticationDefaults.Issuer;
            CallbackPath = new PathString(WeiChatAuthenticationDefaults.CallbackPath);

            AuthorizationEndpoint   = WeiChatAuthenticationDefaults.AuthorizationEndpoint;
            TokenEndpoint           = WeiChatAuthenticationDefaults.TokenEndpoint;
            UserInformationEndpoint = WeiChatAuthenticationDefaults.UserInformationEndpoint;

            Scope.Add("snsapi_login");
            Scope.Add("snsapi_userinfo");

            ClaimActions.MapJsonKey(ClaimTypes.NameIdentifier, "unionid");
            ClaimActions.MapJsonKey(ClaimTypes.Name, "nickname");
            ClaimActions.MapJsonKey(ClaimTypes.Gender, "sex", ClaimValueTypes.Integer);

            ClaimActions.MapJsonKey(Claims.OpenId, "openid");
            ClaimActions.MapJsonKey(Claims.NickName, "nickname");
            ClaimActions.MapJsonKey(Claims.Language, "language");
            ClaimActions.MapJsonKey(Claims.City, "city");
            ClaimActions.MapJsonKey(Claims.Province, "province");
            ClaimActions.MapJsonKey(ClaimTypes.Country, "country");
            ClaimActions.MapJsonKey(Claims.HeadImgUrl, "headimgurl");
            ClaimActions.MapCustomJson(Claims.Privilege, user =>
            {
                var value = user.Value <JArray>("privilege");
                return(value == null ? null : string.Join(",", value.ToObject <string[]>()));
            });
            //ClaimActions.MapCustomJson(Claims.Privilege, user => string.Join(",", user.SelectToken("privilege")?.Select(s => (string)s).ToArray() ?? new string[0]));
        }
Пример #17
0
        public NextcloudAuthenticationOptions()
        {
            ClaimsIssuer = NextcloudAuthenticationDefaults.Issuer;
            CallbackPath = NextcloudAuthenticationDefaults.CallbackPath;

            ClaimActions.MapCustomJson(ClaimTypes.NameIdentifier, user => GetDataString(user, "id"));
            ClaimActions.MapCustomJson(Claims.Username, user => GetDataString(user, "id"));
            ClaimActions.MapCustomJson(Claims.DisplayName, user => GetDataString(user, "displayname"));
            ClaimActions.MapCustomJson(ClaimTypes.Email, user => GetDataString(user, "email"));
            ClaimActions.MapCustomJson(Claims.IsEnabled, user => GetDataString(user, "enabled"));
            ClaimActions.MapCustomJson(Claims.Language, user => GetDataString(user, "language"));
            ClaimActions.MapCustomJson(Claims.Locale, user => GetDataString(user, "locale"));
            ClaimActions.MapCustomJson(
                Claims.Groups,
                user =>
            {
                if (TryGetData(user, out var data) &&
                    data.TryGetProperty("groups", out var groups))
                {
                    return(string.Join(',', groups.EnumerateArray().Select((p) => p.GetString())));
                }

                return(null);
            });
        }
Пример #18
0
        public WeixinAuthenticationOptions()
        {
            ClaimsIssuer = WeixinAuthenticationDefaults.Issuer;
            CallbackPath = new PathString(WeixinAuthenticationDefaults.CallbackPath);

            AuthorizationEndpoint   = WeixinAuthenticationDefaults.AuthorizationEndpoint;
            TokenEndpoint           = WeixinAuthenticationDefaults.TokenEndpoint;
            UserInformationEndpoint = WeixinAuthenticationDefaults.UserInformationEndpoint;

            Scope.Add("snsapi_login");
            Scope.Add("snsapi_userinfo");

            ClaimActions.MapJsonKey(ClaimTypes.NameIdentifier, "unionid");
            ClaimActions.MapJsonKey(ClaimTypes.Name, "nickname");
            ClaimActions.MapJsonKey(ClaimTypes.Gender, "sex");
            ClaimActions.MapJsonKey(ClaimTypes.Country, "country");
            ClaimActions.MapJsonKey(WeixinAuthenticationConstants.Claims.OpenId, "openid");
            ClaimActions.MapJsonKey(WeixinAuthenticationConstants.Claims.Province, "province");
            ClaimActions.MapJsonKey(WeixinAuthenticationConstants.Claims.City, "city");
            ClaimActions.MapJsonKey(WeixinAuthenticationConstants.Claims.HeadImgUrl, "headimgurl");
            ClaimActions.MapCustomJson(WeixinAuthenticationConstants.Claims.Privilege, user =>
            {
                var value = user.Value <JArray>("privilege");
                if (value == null)
                {
                    return(null);
                }

                return(string.Join(",", value.ToObject <string[]>()));
            });
        }
        public YandexAuthenticationOptions()
        {
            ClaimsIssuer = YandexAuthenticationDefaults.Issuer;
            CallbackPath = new PathString(YandexAuthenticationDefaults.CallbackPath);

            AuthorizationEndpoint   = YandexAuthenticationDefaults.AuthorizationEndpoint;
            TokenEndpoint           = YandexAuthenticationDefaults.TokenEndpoint;
            UserInformationEndpoint = YandexAuthenticationDefaults.UserInformationEndpoint;

            ClaimActions.MapJsonKey(ClaimTypes.NameIdentifier, "id");
            ClaimActions.MapJsonKey(ClaimTypes.Name, "login");
            ClaimActions.MapJsonKey(ClaimTypes.Surname, "last_name");
            ClaimActions.MapJsonKey(ClaimTypes.GivenName, "first_name");

            ClaimActions.MapCustomJson(
                ClaimTypes.Email,
                user =>
            {
                if (user.TryGetProperty("emails", out var emails))
                {
                    return(emails.EnumerateArray().Select((p) => p.GetString()).FirstOrDefault());
                }

                return(null);
            });
        }
        public CsdnAuthenticationOptions()
        {
            ClaimsIssuer = CsdnAuthenticationDefaults.Issuer;
            CallbackPath = new PathString(CsdnAuthenticationDefaults.CallbackPath);

            AuthorizationEndpoint   = CsdnAuthenticationDefaults.AuthorizationEndpoint;
            TokenEndpoint           = CsdnAuthenticationDefaults.TokenEndpoint;
            UserInformationEndpoint = CsdnAuthenticationDefaults.UserInformationEndpoint;

            //Scope.Add("snsapi_login");
            //Scope.Add("snsapi_userinfo");

            //Scope.Add("basic");

            //ClaimActions.MapJsonKey(ClaimTypes.NameIdentifier, "userid");
            ClaimActions.MapJsonKey(ClaimTypes.Name, "username");
            //"1"表示男,"0"表示女。
            ClaimActions.MapJsonKey(ClaimTypes.Gender, "gender", ClaimValueTypes.Integer);

            //ClaimActions.MapJsonKey(Claims.UserId, "userid");
            //ClaimActions.MapJsonKey(Claims.UserName, "username");
            ClaimActions.MapJsonKey(Claims.Job, "job");
            ClaimActions.MapJsonKey(Claims.WorkYear, "portrait");
            ClaimActions.MapJsonKey(Claims.Website, "userdetail");
            ClaimActions.MapJsonKey(Claims.Description, "birthday");
            //ClaimActions.MapJsonKey(Claims.Marriage, "marriage");
            //ClaimActions.MapJsonKey(Claims.Blood, "blood");
            //ClaimActions.MapJsonKey(Claims.Figure, "figure");
            //ClaimActions.MapJsonKey(Claims.Constellation, "constellation");
            //ClaimActions.MapJsonKey(Claims.Education, "education");
            //ClaimActions.MapJsonKey(Claims.Trade, "trade");
            //ClaimActions.MapJsonKey(Claims.Job, "job");
        }
        public QQAuthenticationOptions()
        {
            ClaimsIssuer = QQAuthenticationDefaults.Issuer;
            CallbackPath = new PathString(QQAuthenticationDefaults.CallbackPath);

            AuthorizationEndpoint   = QQAuthenticationDefaults.AuthorizationEndpoint;
            TokenEndpoint           = QQAuthenticationDefaults.TokenEndpoint;
            UserInformationEndpoint = QQAuthenticationDefaults.UserInformationEndpoint;
            OpenIdEndpoint          = QQAuthenticationDefaults.UserOpenIdEndpoint;

#if NETSTANDARD2_0
            ClaimActionCollectionMapExtensions.MapJsonKey(ClaimActions, ClaimTypes.NameIdentifier, "id");
            ClaimActionCollectionMapExtensions.MapJsonKey(ClaimActions, ClaimTypes.Name, "displayName");
#endif

#if NETCOREAPP3_0 || NETCOREAPP3_1
            ClaimActions.MapJsonKey(ClaimTypes.NameIdentifier, "id");
            ClaimActions.MapJsonKey(ClaimTypes.Name, "nickname");
            ClaimActions.MapJsonKey(ClaimTypes.Gender, "gender");

            ClaimActions.MapJsonKey("urn:qq:figureurl", "figureurl");
            ClaimActions.MapJsonKey("urn:qq:figureurl_1", "figureurl_1");
            ClaimActions.MapJsonKey("urn:qq:figureurl_2", "figureurl_2");
            ClaimActions.MapJsonKey("urn:qq:figureurl_qq_1", "figureurl_qq_1");
            ClaimActions.MapJsonKey("urn:qq:figureurl_qq_2", "figureurl_qq_2");
            ClaimActions.MapJsonKey("urn:qq:is_yellow_vip", "is_yellow_vip");
            ClaimActions.MapJsonKey("urn:qq:vip", "vip");
            ClaimActions.MapJsonKey("urn:qq:yellow_vip_level", "yellow_vip_level");
            ClaimActions.MapJsonKey("urn:qq:level", "level");
            ClaimActions.MapJsonKey("urn:qq:is_yellow_year_vip", "is_yellow_year_vip");
#endif
        }
Пример #22
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());
        });
    }
Пример #23
0
        public WeChatOptions()
        {
            CallbackPath            = new PathString("/signin-wechat");
            AuthorizationEndpoint   = WeChatDefaults.AuthorizationEndpoint;
            AuthorizationEndpoint2  = WeChatDefaults.AuthorizationEndpoint2;
            TokenEndpoint           = WeChatDefaults.TokenEndpoint;
            UserInformationEndpoint = WeChatDefaults.UserInformationEndpoint;

            //Scope 表示应用授权作用域。
            //网页上登录(非微信浏览器)需要两个Scope,一个是UserInfo,一个是Login
            Scope.Add(UserInfoScope);
            Scope.Add(LoginScope);

            //微信内嵌浏览器Login只需要UserInfo
            Scope2 = new List <string>();
            Scope2.Add(UserInfoScope);

            //除了openid外,其余的都可能为空,因为微信获取用户信息是有单独权限的
            ClaimActions.MapJsonKey(ClaimTypes.NameIdentifier, "openid");
            ClaimActions.MapJsonKey(ClaimTypes.Name, "nickname");
            ClaimActions.MapJsonKey(ClaimTypes.Gender, "sex", ClaimValueTypes.Integer);
            ClaimActions.MapJsonKey(ClaimTypes.Country, "country");     //ClaimTypes.Locality
            ClaimActions.MapJsonKey("urn:wechat:province", "province"); //ClaimTypes.StateOrProvince
            ClaimActions.MapJsonKey("urn:wechat:city", "city");         //ClaimTypes.StreetAddress
            ClaimActions.MapJsonKey(ClaimTypes.Uri, "headimgurl");
            ClaimActions.MapCustomJson("urn:wechat:privilege", user => string.Join(",", user.GetProperty("privilege").EnumerateArray().Select(s => s.GetString()).ToArray() ?? new string[0]));
            ClaimActions.MapJsonKey("urn:wechat:unionid", "unionid");

            IsWeChatBrowser = (r) => r.Headers[HeaderNames.UserAgent].ToString().ToLower().Contains("micromessenger");
        }
Пример #24
0
        public LinkedInAuthenticationOptions()
        {
            ClaimsIssuer = LinkedInAuthenticationDefaults.Issuer;

            CallbackPath = new PathString(LinkedInAuthenticationDefaults.CallbackPath);

            AuthorizationEndpoint   = LinkedInAuthenticationDefaults.AuthorizationEndpoint;
            TokenEndpoint           = LinkedInAuthenticationDefaults.TokenEndpoint;
            UserInformationEndpoint = LinkedInAuthenticationDefaults.UserInformationEndpoint;

            ClaimActions.MapJsonKey(ClaimTypes.NameIdentifier, "id");
            ClaimActions.MapJsonKey(ClaimTypes.Email, "emailAddress");
            ClaimActions.MapJsonKey(ClaimTypes.Name, "formattedName");
            ClaimActions.MapJsonKey(ClaimTypes.GivenName, "firstName");
            ClaimActions.MapJsonKey(ClaimTypes.Surname, "lastName");
            ClaimActions.MapJsonKey("urn:linkedin:maidenname", "maidenName");
            ClaimActions.MapJsonKey("urn:linkedin:profile", "publicProfileUrl");
            ClaimActions.MapJsonKey("urn:linkedin:profilepicture", "pictureUrl");
            ClaimActions.MapJsonKey("urn:linkedin:industry", "industry");
            ClaimActions.MapJsonKey("urn:linkedin:summary", "summary");
            ClaimActions.MapJsonKey("urn:linkedin:headline", "headline");
            ClaimActions.MapCustomJson("urn:linkedin:positions", user => user["positions"]?.ToString());
            ClaimActions.MapJsonKey("urn:linkedin:phoneticfirstname", "phoneticFirstName");
            ClaimActions.MapJsonKey("urn:linkedin:phoneticlastname", "phoneticLastName");
            ClaimActions.MapJsonKey("urn:linkedin:phoneticname", "formattedPhoneticName");
            ClaimActions.MapCustomJson("urn:linkedin:location", user => user["location"]?.ToString());
            ClaimActions.MapJsonKey("urn:linkedin:specialties", "specialties");
            ClaimActions.MapJsonKey("urn:linkedin:numconnections", "numConnections");
            ClaimActions.MapJsonKey("urn:linkedin:numconnectionscapped", "numConnectionsCapped");
            ClaimActions.MapJsonKey("urn:linkedin:currentshare", "currentShare");
            ClaimActions.MapCustomJson("urn:linkedin:pictureurls", user => user["pictureUrls"]?.ToString());
        }
        public PaypalAuthenticationOptions()
        {
            ClaimsIssuer = PaypalAuthenticationDefaults.Issuer;
            CallbackPath = PaypalAuthenticationDefaults.CallbackPath;

            AuthorizationEndpoint   = PaypalAuthenticationDefaults.AuthorizationEndpoint;
            TokenEndpoint           = PaypalAuthenticationDefaults.TokenEndpoint;
            UserInformationEndpoint = PaypalAuthenticationDefaults.UserInformationEndpoint;

            Scope.Add("openid");
            Scope.Add("profile");
            Scope.Add("email");

            ClaimActions.MapJsonKey(ClaimTypes.Name, "name");
            ClaimActions.MapJsonKey(ClaimTypes.GivenName, "given_name");
            ClaimActions.MapJsonKey(ClaimTypes.Surname, "family_name");
            ClaimActions.MapCustomJson(ClaimTypes.NameIdentifier, user => user.GetString("user_id")?.Split('/')?.LastOrDefault());

            ClaimActions.MapCustomJson(
                ClaimTypes.Email,
                user =>
            {
                if (user.TryGetProperty("emails", out var emails))
                {
                    return(emails.EnumerateArray()
                           .Where((p) => p.GetProperty("primary").GetBoolean())
                           .Select((p) => p.GetString("value"))
                           .FirstOrDefault());
                }

                return(null);
            });
        }
        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");
        }
        public AlipayAuthenticationOptions()
        {
            ClaimsIssuer = AlipayAuthenticationDefaults.Issuer;
            CallbackPath = new PathString(AlipayAuthenticationDefaults.CallbackPath);

            AuthorizationEndpoint   = AlipayAuthenticationDefaults.AuthorizationEndpoint;
            TokenEndpoint           = AlipayAuthenticationDefaults.TokenEndpoint;
            UserInformationEndpoint = AlipayAuthenticationDefaults.UserInformationEndpoint;

            GatewayUrl      = AlipayAuthenticationDefaults.GatewayUrl;
            AlipayPublicKey = AlipayAuthenticationDefaults.AlipayPublicKey;
            SignType        = AlipayAuthenticationDefaults.SignType;
            CharSet         = AlipayAuthenticationDefaults.CharSet;
            Version         = AlipayAuthenticationDefaults.Version;
            Format          = AlipayAuthenticationDefaults.Format;
            IsKeyFromFile   = AlipayAuthenticationDefaults.IsKeyFromFile;

            Scope.Add("auth_user");

            ClaimActions.MapJsonKey(ClaimTypes.NameIdentifier, "user_id");
            ClaimActions.MapJsonKey(ClaimTypes.Name, "nick_name");
            //【注意】只有is_certified为T的时候才有意义,否则不保证准确性. 性别(F:女性;M:男性)。
            ClaimActions.MapJsonKey(ClaimTypes.Gender, "gender", ClaimValueTypes.Integer);

            ClaimActions.MapJsonKey(Claims.UserId, "user_id");
            ClaimActions.MapJsonKey(Claims.NickName, "nick_name");
            ClaimActions.MapJsonKey(Claims.Avatar, "avatar");
            ClaimActions.MapJsonKey(Claims.Province, "province");
            ClaimActions.MapJsonKey(Claims.City, "city");
            ClaimActions.MapJsonKey(Claims.IsStudentCertified, "is_student_certified");
            ClaimActions.MapJsonKey(Claims.UserType, "user_type");
            ClaimActions.MapJsonKey(Claims.UserStatus, "user_status");
            ClaimActions.MapJsonKey(Claims.IsCertified, "is_certified");
        }
Пример #28
0
    public KloudlessAuthenticationOptions()
    {
        ClaimsIssuer = KloudlessAuthenticationDefaults.Issuer;
        CallbackPath = KloudlessAuthenticationDefaults.CallbackPath;

        AuthorizationEndpoint   = KloudlessAuthenticationDefaults.AuthorizationEndpoint;
        TokenEndpoint           = KloudlessAuthenticationDefaults.TokenEndpoint;
        UserInformationEndpoint = KloudlessAuthenticationDefaults.UserInformationEndpoint;

        ClaimActions.MapJsonKey(ClaimTypes.NameIdentifier, "id");
        ClaimActions.MapJsonKey(ClaimTypes.Name, "account");
        ClaimActions.MapJsonKey(Claims.Account, "account");
        ClaimActions.MapJsonKey(Claims.Service, "service");
        ClaimActions.MapJsonKey(Claims.InternalUse, "internal_use");
        ClaimActions.MapJsonKey(Claims.Created, "created");
        ClaimActions.MapJsonKey(Claims.Modified, "modified");
        ClaimActions.MapJsonKey(Claims.ServiceName, "service_name");
        ClaimActions.MapJsonKey(Claims.Admin, "admin");
        ClaimActions.MapJsonKey(Claims.Apis, "apis");
        ClaimActions.MapJsonKey(Claims.EffectiveScope, "effective_scope");
        ClaimActions.MapJsonKey(Claims.Api, "api");
        ClaimActions.MapJsonKey(Claims.Type, "type");
        ClaimActions.MapJsonKey(Claims.Enabled, "enabled");
        ClaimActions.MapJsonKey(Claims.ObjectDefinitions, "object_definitions");
        ClaimActions.MapJsonKey(Claims.CustomProperties, "custom_properties");
        ClaimActions.MapJsonKey(Claims.ProxyConnection, "proxy_connection");
        ClaimActions.MapJsonKey(Claims.Active, "active");

        Scope.Add(Scopes.Any);
    }
Пример #29
0
        public BtOAuthOptions()
        {
            AuthorizationEndpoint = "https://apistorebt.ro/mga/sps/oauth/oauth20/authorize";
            TokenEndpoint = "https://api.apistorebt.ro/bt/sb/oauth/token";
            CallbackPath = "/signin-bt";
            SaveTokens = true;

            Scope.Add("openid");
            Scope.Add("profile");
            Scope.Add("email");

            ClaimActions.MapJsonKey(ClaimTypes.NameIdentifier, "id");
            ClaimActions.MapJsonKey(ClaimTypes.Name, "name");
            ClaimActions.MapJsonKey(ClaimTypes.GivenName, "given_name");
            ClaimActions.MapJsonKey(ClaimTypes.Surname, "family_name");
            ClaimActions.MapJsonKey(ClaimTypes.Email, "email");

            Events.OnTicketReceived = context =>
            {
                context.HandleResponse();

                // Default redirect path is the base path
                if (string.IsNullOrEmpty(context.ReturnUri))
                {
                    context.ReturnUri = "/";
                }

                context.Response.Redirect(context.ReturnUri);
                return Task.CompletedTask;
            };
        }
Пример #30
0
        public WxWorkAuthenticationOptions()
        {
            CallbackPath = WxWorkAuthenticationDefaults.CallbackPath;
            ClaimsIssuer = WxWorkAuthenticationDefaults.Issuer;

            AuthorizationEndpoint         = WxWorkAuthenticationDefaults.AuthorizationEndpoint;
            TokenEndpoint                 = WxWorkAuthenticationDefaults.TokenEndpoint;
            UserInformationEndpoint       = WxWorkAuthenticationDefaults.UserInformationEndpoint;
            MemberInformationEndpoint     = WxWorkAuthenticationDefaults.MemberInformationEndpoint;
            UserIdConvertToOpenIdEndpoint = WxWorkAuthenticationDefaults.UserIdConvertToOpenIdEndpoint;

            Scope.Add("snsapi_base");

            ClaimActions.MapJsonKey(ClaimTypes.NameIdentifier, "openid");

            ClaimActions.MapJsonKey(JwtClaimTypes.Name, "name");
            ClaimActions.MapJsonKey(JwtClaimTypes.NickName, "alias");
            ClaimActions.MapJsonKey(JwtClaimTypes.Email, "email");
            ClaimActions.MapJsonKey(JwtClaimTypes.PhoneNumber, "mobile");
            ClaimActions.MapJsonKey(JwtClaimTypes.Address, "address");
            ClaimActions.MapJsonKey(JwtClaimTypes.Gender, "gender");
            ClaimActions.MapJsonKey(JwtClaimTypes.Subject, "openid");
            ClaimActions.MapJsonKey(JwtClaimTypes.Picture, "avatar");

            ClaimActions.MapJsonKey(Claims.Userid, "userid");
            ClaimActions.MapJsonKey(Claims.OpenUserId, "openid");
            ClaimActions.MapJsonKey(Claims.AccountStatus, "status");
        }