【问题标题】:Netsuite Suitelet - Valid SessionNetsuite Suitelet - 有效会话
【发布时间】:2023-04-08 20:28:01
【问题描述】:

我是 NS Suitelet 脚本的新手。

我创建了一个外部和内部套件,然后都部署了。

对于外部套件(loginform.js):

  • 我使用https://rest.netsuite.com/rest/roles 并从表单中传入用户名和密码。
  • 我收到响应代码 200,NS 为用户返回凭据。
  • 在帖子中我使用nlapiRequestURL(url),其中url 是内部套件的端点

对于内部套件 (verify.js)

  • 一个简单的函数{ var login = nlapiGetLogin(); }
  • 所以如果登录不为空,则用户已登录

所以,如果我登录到 Netsuite 并执行内部套件,我会得到有效的登录对象。

但是如果外部套件调用内部套件,则会抛出权限访问错误。

我在这里缺少什么?我知道我可能没有“有效会话”。

我看到这个“有效会话”在开发者指南中提到了很多,但它没有解释如何创建或获取这个会话。

请帮我创建或获取这个有效的 NS 会话。

【问题讨论】:

  • “外部套件”是什么意思?根据定义,所有套件都是服务器端脚本。
  • 另外,您检查过您的外部套件的脚本部署记录吗?需要确保“作为角色执行”具有适当的权限来执行您想要的操作。

标签: netsuite suitescript


【解决方案1】:

内部套件要求用户进行身份验证。在这种情况下,外部套件(Netsuite)正在调用内部套件(也称为 Netsuite),并且由于外部套件从未经过身份验证,因此不会加载。 Suitelets 的身份验证过程旨在供浏览器使用,因为它在 Web 界面上运行并安装 cookie。

您需要将两个 Suitelet 设为外部以便它们可以相互调用,您可能需要添加身份验证标头以保护连接。

或者,我建议只使用一个内部套件,让 Netsuite 处理登录/身份验证,方法是将用户设置为客户,授予他们访问权限,并使 Suitelet 部署可用于客户角色。您甚至可以通过将 Suitelet 设置为以管理员身份运行来绕过客户权限。如果您不希望每个客户都有权访问 Suitelet,那么只需在客户记录上设置一个自定义字段以指示用户是否有权访问它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-17
    • 1970-01-01
    • 2021-11-06
    相关资源
    最近更新 更多