Da Sie keine Programmiersprache angegeben haben, werde ich eine in Python illustrieren.
Es gibt zwei Teile, die Sie erwähnten, Registrierungs-/Zugangstoken und signierte Nutzdaten.
Der anfängliche Rückruf fließen etwa wie folgt aussehen:
@app.route('/bigcommerce/callback')
def auth_callback():
# Put together params for token request
code = flask.request.args['code']
context = flask.request.args['context']
scope = flask.request.args['scope']
store_hash = context.split('/')[1]
redirect = app.config['APP_URL'] + flask.url_for('auth_callback')
# Fetch a permanent oauth token. This will throw an exception on error,
# which will get caught by our error handler above.
client = BigcommerceApi(client_id=client_id(), store_hash=store_hash)
token = client.oauth_fetch_token(client_secret(), code, context, scope, redirect)
bc_user_id = token['user']['id']
email = token['user']['email']
access_token = token['access_token']
Der Fluss mit einem unterzeichnet Nutzlast etwas aussehen würde: Ihr
@app.route('/bigcommerce/load')
def load():
# Decode and verify payload
payload = flask.request.args['signed_payload']
user_data = BigcommerceApi.oauth_verify_payload(payload, client_secret())
if user_data is False:
return "Payload verification failed!", 401
bc_user_id = user_data['user']['id']
email = user_data['user']['email']
store_hash = user_data['store_hash']
Wenn zunächst ein Benutzer bei der Erstellung Datenbank, Sie können das Anmeldungsdatum auch durch eine Funktion Ihres Codes angeben und dann einen periodischen Cron-Job ausführen, um zu überprüfen, ob sie ein registriertes Konto bei Ihnen haben. Es gibt keinen Endpunkt, auf dem wir speichern, ob sie die Registrierung bei Ihnen abgeschlossen haben, da dies eine Funktion Ihrer App ist.
In BigCommerce, wenn die App zum allerersten Mal installiert wird, erstellt BC eine GET-Anfrage an die von Ihnen angegebene URL als das ursprüngliche Installationsprogramm (Sie definieren diese URL selbst im BC Entwickler-Dashboard). Ihr ursprüngliches Installationsprogramm sollte die Logik enthalten, um das Zugriffstoken abzurufen und zur Benutzerregistrierung aufzufordern. Dieser Zugriffstoken ist dauerhaft, Sie müssen ihn also auf Ihrer Seite speichern. –
Außerdem legen Sie eine separate URL für die 'app load' fest, dies ist die URL, die BC aufruft, wenn der Benutzer Ihre App öffnet * AFTER * ist bereits installiert. Diese URL sollte auf das Programm verweisen, das signed_payload überprüft und das access_token des Benutzers aus Ihrer Datenbank abruft. –
Wenn der Benutzer Ihre App installiert und dann vor Abschluss der Registrierung existiert, haben Sie ein gültiges access_token für den Store, aber der Benutzer ist nicht vollständig bei Ihnen registriert.In diesem Fall sollte Ihr 'app load'-Code einfach prüfen, ob die Registrierungsfelder in Ihrer Datenbank vorhanden sind, wenn dies nicht der Fall ist, bedeutet dies, dass der Benutzer sie nicht ausgefüllt hat und Ihr Programm daher die Registrierungsseite anzeigen sollte (solange Verwenden Sie das selbe access_token, das Sie bei der ersten Installation der App erhalten haben, und warten Sie, bis die Registrierung abgeschlossen ist, bevor Sie Ihr Haupt-App-Dashboard anzeigen.Hope this make cents –