授权
当应用需要访问商家店铺数据时,必须先获得商家的授权。由于应用运行在 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', // 授权回调地址
});
参数说明
| 参数 | 类型 | 说明 | 必填 |
|---|---|---|---|
| scope | string | 权限范围。申请多个权限时用 , 分隔,例如:read_products,read_orders。完整权限列表请参考 权限点列表。 | 是 |
| appKey | string | 应用唯一标识,需与 初始化 时使用的 appKey 参数一致。 | 是 |
| redirectUri | string | 商家授权应用后重定向的 URL,需要与 SHOPLINE 合作伙伴后台配置的 应用回调地址 的其中一个一致。 | 是 |
授权流程
- 商家请求安装应用:商家在 SHOPLINE 应用市场发起安装。
- 跳转到应用:SHOPLINE 携带
handle、timestamp、appKey和sign参数访问配置的应用地址。 - 应用验证授权:应用判断当前店铺是否已完成授权。
- 发起授权请求:如需授权,调用
Oauth.create(app).invoke()方法。 - 商家确认授权:SHOPLINE 在父窗口打开授权页面,商家确认授权。
- 回调到应用:授权完成后,SHOPLINE 会重定向到配置的
redirectUri。
提示
完整的 OAuth 授权流程请参考 应用授权文档。
这篇文章对你有帮助吗?