goify-multipass
Implementation of shopify's multipass in golang
Shopify provides a mechanism for single sign-on known as Multipass. Multipass uses an AES encrypted JSON hash and multipassify provides functions for generating tokens
More details on Multipass with Shopify can be found here.
Installation
go get github.com/claimh-solais/goify-multipass
Usage
To use Multipass an Enterprise / Plus plan is required. The Multipass secret can be found in your shop Admin (Settings > Checkout > Customer Accounts).
Make sure "Accounts are required" or "Accounts are optional" is selected and Multipass is enabled.
import multipass "github.com/claimh-solais/goify-multipass"
// Construct the Multipassify encoder
m := multipass.New("SHOPIFY MULTIPASS SECRET")
// Create your customer info hash
customerInfo := map[string]interface{}{
"email": "test@example.com",
"remote_ip": "USERS IP ADDRESS",
"return_to": "http://some.url",
...ADDITIONAL_METADATA_FIELDS,
})
// Encode a Multipass token
token := m.Encode(customerInfo)
// Generate a Shopify multipass URL to your shop
urlString := m.GenerateURL(customerInfo, "yourstorename.myshopify.com")
// Generates a URL like: https://yourstorename.myshopify.com/account/login/multipass/<MULTIPASS-TOKEN>