iam*_*ush 5 oauth-2.0 bigcommerce
在我的应用程序中,用户在安装应用程序时,需要填写注册表单.我需要将access_token与用户实例一起保存.
因此,如果用户未注册,我会重定向到注册表单,即.我不保存access_token,但此时,应用程序已注册.这意味着,假设当商店管理员重新登录应用程序时,他没有再次获得授权代码,而是获得了signed_payload.
因为,我不想在我的数据库上存储未注册的用户,我更喜欢调用api,这将授予我auth代码和/或access_token.
我可以打电话吗?
由于您没有指定编程语言,我将用 Python 来说明一种编程语言。
您提到了两个部分,注册/访问令牌和签名的有效负载。
初始回调流程如下所示:
@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']
Run Code Online (Sandbox Code Playgroud)
使用签名有效负载的流程如下所示:
@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']
Run Code Online (Sandbox Code Playgroud)
最初在数据库中创建用户时,您还可以通过代码函数表示注册日期,然后定期执行 cron 作业来检查他们是否有您的注册帐户。我们没有存储他们是否完成向您注册的端点,因为这是您的应用程序的功能。
| 归档时间: |
|
| 查看次数: |
495 次 |
| 最近记录: |