Documentation
¶
Overview ¶
Package oidcclaims allows reading of claims including Standard Claims.
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ( // ErrNoStandardClaims is returned when no Standard Claims have been set. ErrNoStandardClaims = errors.New("no Standard Claims found") )
Functions ¶
Types ¶
type Address ¶
type Address struct { // Full mailing address, formatted for display or use on a mailing label. This field MAY contain multiple lines, separated by newlines. // Newlines can be represented either as a carriage return/line feed pair ("\r\n") or as a single line feed character ("\n"). Formatted string `json:"formatted,omitempty"` // Full street address component, which MAY include house number, street name, Post Office Box, and multi-line extended street address // information. This field MAY contain multiple lines, separated by newlines. Newlines can be represented either as a carriage return/line // feed pair ("\r\n") or as a single line feed character ("\n"). StreetAddress string `json:"street_address,omitempty"` // City or locality component. Locality string `json:"locality,omitempty"` // State, province, prefecture, or region component. Region string `json:"region,omitempty"` // Zip code or postal code component. PostalCode string `json:"postal_code,omitempty"` // Country name component. Country string `json:"country,omitempty"` }
Address represents a physical mailing address. It's defined at https://openid.net/specs/openid-connect-core-1_0.html#AddressClaim.
type Claims ¶
Claims about a User.
func (*Claims) UnmarshalJSON ¶
UnmarshalJSON decodes Claims.
type Standard ¶
type Standard struct { // Subject - Identifier for the End-User at the Issuer. Sub string `json:"sub,omitempty"` // End-User's full name in displayable form including all name parts, possibly including titles and suffixes, ordered according to the // End-User's locale and preferences. Name string `json:"name,omitempty"` // Given name(s) or first name(s) of the End-User. Note that in some cultures, people can have multiple given names; all can be present, with // the names being separated by space characters. GivenName string `json:"given_name,omitempty"` // Surname(s) or last name(s) of the End-User. Note that in some cultures, people can have multiple family names or no family name; all can // be present, with the names being separated by space characters. FamilyName string `json:"family_name,omitempty"` // Middle name(s) of the End-User. Note that in some cultures, people can have multiple middle names; all can be present, with the names // being separated by space characters. Also note that in some cultures, middle names are not used. MiddleName string `json:"middle_name,omitempty"` // Casual name of the End-User that may or may not be the same as the given_name. For instance, a nickname value of Mike might be returned // alongside a given_name value of Michael. Nickname string `json:"nickname,omitempty"` // Shorthand name by which the End-User wishes to be referred to at the RP, such as janedoe or j.doe. This value MAY be any valid JSON string // including special characters such as @, /, or whitespace. The RP MUST NOT rely upon this value being unique, as discussed in Section 5.7. PreferredUsername string `json:"preferred_username,omitempty"` // URL of the End-User's profile page. The contents of this Web page SHOULD be about the End-User. Profile string `json:"profile,omitempty"` // URL of the End-User's profile picture. This URL MUST refer to an image file (for example, a PNG, JPEG, or GIF image file), rather than to // a Web page containing an image. Note that this URL SHOULD specifically reference a profile photo of the End-User suitable for displaying // when describing the End-User, rather than an arbitrary photo taken by the End-User. Picture string `json:"picture,omitempty"` // URL of the End-User's Web page or blog. This Web page SHOULD contain information published by the End-User or an organization that the // End-User is affiliated with. Website string `json:"website,omitempty"` // End-User's preferred e-mail address. Its value MUST conform to the RFC 5322 [RFC5322] addr-spec syntax. The RP MUST NOT rely upon this // value being unique, as discussed in Section 5.7. Email string `json:"email,omitempty"` // True if the End-User's e-mail address has been verified; otherwise false. When this Claim Value is true, this means that the OP took // affirmative steps to ensure that this e-mail address was controlled by the End-User at the time the verification was performed. The means // by which an e-mail address is verified is context-specific, and dependent upon the trust framework or contractual agreements within which // the parties are operating. EmailVerified bool `json:"email_verified,omitempty"` // End-User's gender. Values defined by this specification are female and male. Other values MAY be used when neither of the defined values // are applicable. Gender string `json:"gender,omitempty"` // End-User's birthday, represented as an ISO 8601:2004 [ISO8601‑2004] YYYY-MM-DD format. The year MAY be 0000, indicating that it is // omitted. To represent only the year, YYYY format is allowed. Note that depending on the underlying platform's date related function, // providing just year can result in varying month and day, so the implementers need to take this factor into account to correctly process // the dates. Birthdate string `json:"birthday,omitempty"` // String from zoneinfo [zoneinfo] time zone database representing the End-User's time zone. For example, Europe/Paris or // America/Los_Angeles. Zoneinfo string `json:"zoneinfo,omitempty"` // End-User's locale, represented as a BCP47 [RFC5646] language tag. This is typically an ISO 639-1 Alpha-2 [ISO639‑1] language code in // lowercase and an ISO 3166-1 Alpha-2 [ISO3166‑1] country code in uppercase, separated by a dash. For example, en-US or fr-CA. As a // compatibility note, some implementations have used an underscore as the separator rather than a dash, for example, en_US; Relying Parties // MAY choose to accept this locale syntax as well. Locale string `json:"locale,omitempty"` // End-User's preferred telephone number. E.164 [E.164] is RECOMMENDED as the format of this Claim, for example, +1 (425) 555-1212 or // +56 (2) 687 2400. If the phone number contains an extension, it is RECOMMENDED that the extension be represented using the // RFC 3966 [RFC3966] extension syntax, for example, +1 (604) 555-1234;ext=5678. PhoneNumber string `json:"phone_number,omitempty"` // True if the End-User's phone number has been verified; otherwise false. When this Claim Value is true, this means that the OP took // affirmative steps to ensure that this phone number was controlled by the End-User at the time the verification was performed. The means by // which a phone number is verified is context-specific, and dependent upon the trust framework or contractual agreements within which the // parties are operating. When true, the phone_number Claim MUST be in E.164 format and any extensions MUST be represented in RFC 3966 // format. PhoneNumberVerified bool `json:"phone_number_verified,omitempty"` // End-User's preferred postal address. The value of the address member is a JSON [RFC4627] structure containing some or all of the members // defined in Section 5.1.1. Address *Address `json:"address,omitempty"` // Time the End-User's information was last updated. Its value is a JSON number representing the number of seconds from 1970-01-01T0:0:0Z as // measured in UTC until the date/time. UpdatedAt int64 `json:"updated_at,omitempty"` }
Standard are defined by OpenID Connect Core in https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims.
Click to show internal directories.
Click to hide internal directories.