Documentation ¶
Overview ¶
Package shopify implements the OAuth2 protocol for authenticating users through Shopify. This package can be used as a reference implementation of an OAuth2 provider for Goth.
Index ¶
- Constants
- type Provider
- func (p *Provider) BeginAuth(state string) (goth.Session, error)
- func (p *Provider) Client() *http.Client
- func (p *Provider) Debug(debug bool)
- func (p *Provider) FetchUser(session goth.Session) (goth.User, error)
- func (p *Provider) Name() string
- func (p *Provider) RefreshToken(refreshToken string) (*oauth2.Token, error)
- func (p *Provider) RefreshTokenAvailable() bool
- func (p *Provider) SetName(name string)
- func (p *Provider) SetShopName(name string)
- func (p *Provider) UnmarshalSession(data string) (goth.Session, error)
- type Session
Constants ¶
const ( ScopeReadContent = "read_content" ScopeWriteContent = "write_content" ScopeReadThemes = "read_themes" ScopeWriteThemes = "write_themes" ScopeReadProducts = "read_products" ScopeWriteProducts = "write_products" ScopeReadProductListings = "read_product_listings" ScopeReadCustomers = "read_customers" ScopeWriteCustomers = "write_customers" ScopeReadOrders = "read_orders" ScopeWriteOrders = "write_orders" ScopeReadDrafOrders = "read_draft_orders" ScopeWriteDrafOrders = "write_draft_orders" ScopeReadInventory = "read_inventory" ScopeWriteInventory = "write_inventory" ScopeReadLocations = "read_locations" ScopeReadScriptTags = "read_script_tags" ScopeWriteScriptTags = "write_script_tags" ScopeReadFulfillments = "read_fulfillments" ScopeWriteFulfillments = "write_fulfillments" ScopeReadShipping = "read_shipping" ScopeWriteShipping = "write_shipping" ScopeReadAnalytics = "read_analytics" ScopeReadUsers = "read_users" ScopeWriteUsers = "write_users" ScopeReadCheckouts = "read_checkouts" ScopeWriteCheckouts = "write_checkouts" ScopeReadReports = "read_reports" ScopeWriteReports = "write_reports" ScopeReadPriceRules = "read_price_rules" ScopeWritePriceRules = "write_price_rules" ScopeMarketingEvents = "read_marketing_events" ScopeWriteMarketingEvents = "write_marketing_events" ScopeReadResourceFeedbacks = "read_resource_feedbacks" ScopeWriteResourceFeedbacks = "write_resource_feedbacks" ScopeReadShopifyPaymentsPayouts = "read_shopify_payments_payouts" ScopeReadShopifyPaymentsDisputes = "read_shopify_payments_disputes" // Special: // Grants access to all orders rather than the default window of 60 days worth of orders. // This OAuth scope is used in conjunction with read_orders, or write_orders. You need to request // this scope from your Partner Dashboard before adding it to your app. ScopeReadAllOrders = "read_all_orders" )
Define scopes supported by Shopify. See: https://help.shopify.com/en/api/getting-started/authentication/oauth/scopes#authenticated-access-scopes
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Provider ¶
type Provider struct { ClientKey string Secret string CallbackURL string HTTPClient *http.Client // contains filtered or unexported fields }
Provider is the implementation of `goth.Provider` for accessing Shopify.
func New ¶
New creates a new Shopify provider and sets up important connection details. You should always call `shopify.New` to get a new provider. Never try to create one manually.
func (*Provider) FetchUser ¶
FetchUser will go to Shopify and access basic information about the user.
func (*Provider) RefreshToken ¶
RefreshToken get new access token based on the refresh token
func (*Provider) RefreshTokenAvailable ¶
RefreshTokenAvailable refresh token is provided by auth provider or not
func (*Provider) SetName ¶
SetName is to update the name of the provider (needed in case of multiple providers of 1 type)
func (*Provider) SetShopName ¶
SetShopName is to update the shopify shop name, needed when interfacing with different shops.
type Session ¶
type Session struct { AuthURL string AccessToken string Hostname string HMAC string ExpiresAt time.Time }
Session stores data during the auth process with Shopify.
func (*Session) Authorize ¶
Authorize the session with Shopify and return the access token to be stored for future use.
func (Session) GetAuthURL ¶
GetAuthURL will return the URL set by calling the `BeginAuth` function on the Shopify provider.