授权

当应用需要访问商家店铺数据时,必须先获得商家的授权。由于应用运行在 iframe 内嵌环境中,如果通过服务端重定向到授权页面,会导致授权页面也被嵌套在 iframe 中,从而引发显示异常或加载失败。

因此,强烈建议使用 App Bridge 提供的 Oauth 方法在前端发起授权请求,该方法会在父窗口中打开授权页面,避免 iframe 嵌套问题。

使用

当商家安装应用时,调用以下代码引导商家跳转到 SHOPLINE 授权页面:

import Client, { Oauth, shared } from '@shoplineos/app-bridge';
const appKey = 'your-app-key', // 应用 Key
// 初始化 App Bridge
const app = Client.createApp({
appKey,
host: shared.getHost(),
});
// 发起授权请求
Oauth.create(app).invoke({
scope: 'read_products,read_orders', // 需要申请的权限
appKey,
redirectUri: 'https://your-app.com/callback', // 授权回调地址
});

参数说明

参数类型说明必填
scopestring权限范围。申请多个权限时用 , 分隔,例如:read_products,read_orders。完整权限列表请参考 权限点列表
appKeystring应用唯一标识,需与 初始化 时使用的 appKey 参数一致。
redirectUristring商家授权应用后重定向的 URL,需要与 SHOPLINE 合作伙伴后台配置的 应用回调地址 的其中一个一致。

授权流程

  1. 商家请求安装应用:商家在 SHOPLINE 应用市场发起安装。
  2. 跳转到应用:SHOPLINE 携带 handletimestampappKeysign 参数访问配置的应用地址。
  3. 应用验证授权:应用判断当前店铺是否已完成授权。
  4. 发起授权请求:如需授权,调用 Oauth.create(app).invoke() 方法。
  5. 商家确认授权:SHOPLINE 在父窗口打开授权页面,商家确认授权。
  6. 回调到应用:授权完成后,SHOPLINE 会重定向到配置的 redirectUri
提示

完整的 OAuth 授权流程请参考 应用授权文档

这篇文章对你有帮助吗?