Loading...
Loading...
Compare original and translation side by side
ctx.authTokenctx.storeUserAuthTokenctx.adminUserAuthTokenAUTH_TOKENSTORE_TOKENADMIN_TOKENappKeyappTokenmanifest.jsonExternalClientJanusClientctx.authTokenctx.storeUserAuthTokenctx.adminUserAuthTokenAUTH_TOKENSTORE_TOKENADMIN_TOKENappKeyappTokenmanifest.jsonExternalClientJanusClientAUTH_TOKENctx.authTokenSTORE_TOKENctx.storeUserAuthTokenADMIN_TOKENctx.adminUserAuthTokenAUTH_TOKENauthMethodIOContextADMIN_TOKENctx.adminUserAuthTokenappKeyappToken| Token | Context field | Use when | Avoid when |
|---|---|---|---|
| | app-level jobs, service-to-service work, or operations not linked to a current user | a shopper or Admin user is already driving the action |
| | storefront and shopper-triggered operations | backend jobs or Admin-only operations |
| | Admin requests that must respect the current user's LM role | storefront flows or background app tasks |
ctx.authTokenAUTH_TOKENctx.storeUserAuthTokenSTORE_TOKENctx.adminUserAuthTokenADMIN_TOKENAUTH_TOKENauthMethodIOContextctx.adminUserAuthTokenADMIN_TOKENappKeyappToken| 令牌 | 上下文字段 | 适用场景 | 不适用场景 |
|---|---|---|---|
| | 应用级任务、服务间通信,或与当前用户无关的操作 | 操作已由购物者或管理员用户触发的场景 |
| | 店面和购物者触发的操作 | 后端任务或仅管理员可操作的场景 |
| | 需要遵循当前用户LM角色规则的管理员请求 | 店面流程或后台应用任务 |
ctx.authTokenctx.storeUserAuthTokenctx.adminUserAuthTokenexport class OmsClient extends JanusClient {
constructor(ctx: IOContext, options?: InstanceOptions) {
super(ctx, {
...options,
headers: {
...options?.headers,
VtexIdclientAutCookie: ctx.storeUserAuthToken,
},
})
}
}export class OmsClient extends JanusClient {
constructor(ctx: IOContext, options?: InstanceOptions) {
super(ctx, {
...options,
headers: {
...options?.headers,
VtexIdclientAutCookie: ctx.authToken,
},
})
}
}ctx.authTokenctx.storeUserAuthTokenctx.adminUserAuthTokenexport class OmsClient extends JanusClient {
constructor(ctx: IOContext, options?: InstanceOptions) {
super(ctx, {
...options,
headers: {
...options?.headers,
VtexIdclientAutCookie: ctx.storeUserAuthToken,
},
})
}
}export class OmsClient extends JanusClient {
constructor(ctx: IOContext, options?: InstanceOptions) {
super(ctx, {
...options,
headers: {
...options?.headers,
VtexIdclientAutCookie: ctx.authToken,
},
})
}
}ctx.authTokenctx.authTokenexport class RatesAndBenefitsClient extends JanusClient {
constructor(ctx: IOContext, options?: InstanceOptions) {
super(ctx, {
...options,
headers: {
...options?.headers,
VtexIdclientAutCookie: ctx.authToken,
},
})
}
}export class AdminOrdersClient extends JanusClient {
constructor(ctx: IOContext, options?: InstanceOptions) {
super(ctx, {
...options,
headers: {
...options?.headers,
VtexIdclientAutCookie: ctx.authToken,
},
})
}
}ctx.authTokenctx.authTokenexport class RatesAndBenefitsClient extends JanusClient {
constructor(ctx: IOContext, options?: InstanceOptions) {
super(ctx, {
...options,
headers: {
...options?.headers,
VtexIdclientAutCookie: ctx.authToken,
},
})
}
}export class AdminOrdersClient extends JanusClient {
constructor(ctx: IOContext, options?: InstanceOptions) {
super(ctx, {
...options,
headers: {
...options?.headers,
VtexIdclientAutCookie: ctx.authToken,
},
})
}
}IOContextauthMethodappKeyappTokenX-VTEX-API-AppKeyX-VTEX-API-AppTokenawait ctx.clients.catalog.getSkuById(id, {
authMethod: 'ADMIN_TOKEN',
})await fetch(`https://${ctx.vtex.account}.myvtex.com/api/catalog/pvt/stockkeepingunit/${id}`, {
headers: {
'X-VTEX-API-AppKey': process.env.VTEX_APP_KEY!,
'X-VTEX-API-AppToken': process.env.VTEX_APP_TOKEN!,
},
})IOContextauthMethodappKeyappTokenX-VTEX-API-AppKeyX-VTEX-API-AppTokenawait ctx.clients.catalog.getSkuById(id, {
authMethod: 'ADMIN_TOKEN',
})await fetch(`https://${ctx.vtex.account}.myvtex.com/api/catalog/pvt/stockkeepingunit/${id}`, {
headers: {
'X-VTEX-API-AppKey': process.env.VTEX_APP_KEY!,
'X-VTEX-API-AppToken': process.env.VTEX_APP_TOKEN!,
},
})storefront request -> STORE_TOKEN / ctx.storeUserAuthToken
admin request -> ADMIN_TOKEN / ctx.adminUserAuthToken
background app work -> AUTH_TOKEN / ctx.authTokenauthMethodawait ctx.clients.orders.listOrders({
authMethod: 'ADMIN_TOKEN',
})await ctx.clients.orders.listOrders({
authMethod: 'STORE_TOKEN',
})import type { IOContext, InstanceOptions } from '@vtex/api'
import { JanusClient } from '@vtex/api'
export class OmsClient extends JanusClient {
constructor(ctx: IOContext, options?: InstanceOptions) {
super(ctx, {
...options,
headers: {
...options?.headers,
VtexIdclientAutCookie: ctx.adminUserAuthToken,
},
})
}
}店面请求 -> STORE_TOKEN / ctx.storeUserAuthToken
管理员请求 -> ADMIN_TOKEN / ctx.adminUserAuthToken
后台应用任务 -> AUTH_TOKEN / ctx.authTokenauthMethodawait ctx.clients.orders.listOrders({
authMethod: 'ADMIN_TOKEN',
})await ctx.clients.orders.listOrders({
authMethod: 'STORE_TOKEN',
})import type { IOContext, InstanceOptions } from '@vtex/api'
import { JanusClient } from '@vtex/api'
export class OmsClient extends JanusClient {
constructor(ctx: IOContext, options?: InstanceOptions) {
super(ctx, {
...options,
headers: {
...options?.headers,
VtexIdclientAutCookie: ctx.adminUserAuthToken,
},
})
}
}ctx.authTokenctx.authTokenctx.authTokenappKeyappTokenIOContextctx.authTokenctx.storeUserAuthTokenctx.adminUserAuthTokenctx.authTokenctx.authTokenctx.authTokenappKeyappTokenIOContextctx.authTokenctx.storeUserAuthTokenctx.adminUserAuthTokenctx.storeUserAuthTokenctx.adminUserAuthTokenctx.authTokenauthMethodctx.storeUserAuthTokenctx.adminUserAuthTokenctx.authTokenauthMethodvtex-io-auth-and-policiesvtex-io-auth-and-policiesAUTH_TOKENSTORE_TOKENADMIN_TOKENAUTH_TOKENSTORE_TOKENADMIN_TOKEN