social

package
v2.15.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 28, 2020 License: Apache-2.0 Imports: 21 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AppleCert added in v2.13.0

type AppleCert struct {
	Kty string `json:"kty"`
	Kid string `json:"kid"`
	Use string `json:"use"`
	Alg string `json:"alg"`
	N   string `json:"n"`
	E   string `json:"e"`
	// contains filtered or unexported fields
}

JWK certificate data for an Apple Sign In verification key.

type AppleCerts added in v2.13.0

type AppleCerts struct {
	Keys []*AppleCert `json:"keys"`
}

type AppleProfile added in v2.13.0

type AppleProfile struct {
	ID            string
	Email         string
	EmailVerified bool
}

AppleProfile is an abbreviated version of a user authenticated through Apple Sign In.

type Client

type Client struct {
	// contains filtered or unexported fields
}

Client is responsible for making calls to different providers

func NewClient

func NewClient(logger *zap.Logger, timeout time.Duration) *Client

NewClient creates a new Social Client

func (*Client) CheckAppleToken added in v2.13.0

func (c *Client) CheckAppleToken(ctx context.Context, bundleId string, idToken string) (*AppleProfile, error)

func (*Client) CheckGameCenterID

func (c *Client) CheckGameCenterID(ctx context.Context, playerID string, bundleID string, timestamp int64, salt string, signature string, publicKeyURL string) (bool, error)

CheckGameCenterID checks to see validity of the GameCenter playerID

func (*Client) CheckGoogleToken

func (c *Client) CheckGoogleToken(ctx context.Context, idToken string) (*GoogleProfile, error)

CheckGoogleToken extracts the user's Google Profile from a given ID token.

func (*Client) ExtractFacebookInstantGameID added in v2.11.0

func (c *Client) ExtractFacebookInstantGameID(signedPlayerInfo string, appSecret string) (facebookInstantGameID string, err error)

Extract player ID and validate the Facebook Instant Game token.

func (*Client) GetFacebookFriends

func (c *Client) GetFacebookFriends(ctx context.Context, accessToken string) ([]FacebookProfile, error)

GetFacebookFriends queries the Facebook Graph. Token is expected to also have the "user_friends" permission.

func (*Client) GetFacebookProfile

func (c *Client) GetFacebookProfile(ctx context.Context, accessToken string) (*FacebookProfile, error)

GetFacebookProfile retrieves the user's Facebook Profile given the accessToken

func (*Client) GetSteamProfile

func (c *Client) GetSteamProfile(ctx context.Context, publisherKey string, appID int, ticket string) (*SteamProfile, error)

GetSteamProfile retrieves the user's Steam Profile. Key and App ID should be configured at the application level. See: https://partner.steamgames.com/documentation/auth#client_to_backend_webapi

type FacebookProfile

type FacebookProfile struct {
	ID    string `json:"id"`
	Name  string `json:"name"`
	Email string `json:"email"`
}

FacebookProfile is an abbreviated version of a Facebook profile.

type GoogleProfile

type GoogleProfile struct {
	// Fields available in all tokens.
	Iss string `json:"iss"`
	Sub string `json:"sub"`
	Azp string `json:"azp"`
	Aud string `json:"aud"`
	Iat int64  `json:"iat"`
	Exp int64  `json:"exp"`
	// Fields available only if the user granted the "profile" and "email" OAuth scopes.
	Email         string `json:"email"`
	EmailVerified bool   `json:"email_verified"`
	Name          string `json:"name"`
	Picture       string `json:"picture"`
	GivenName     string `json:"given_name"`
	FamilyName    string `json:"family_name"`
	Locale        string `json:"locale"`
}

GoogleProfile is an abbreviated version of a Google profile extracted from in a verified ID token.

type SteamError

type SteamError struct {
	ErrorCode int    `json:"errorcode"`
	ErrorDesc string `json:"errordesc"`
}

SteamError contains a possible error response from the Steam Web API.

type SteamProfile

type SteamProfile struct {
	SteamID uint64 `json:"steamid,string"`
}

SteamProfile is an abbreviated version of a Steam profile.

type SteamProfileWrapper

type SteamProfileWrapper struct {
	Response struct {
		Params *SteamProfile `json:"params"`
		Error  *SteamError   `json:"error"`
	} `json:"response"`
}

Unwrapping the SteamProfile

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL