providers/netsuite
NetSuiteProfile
屬性
contact?
optional contact: number;
department?
optional department: number;
email: string;
id
id: number;
location
location: number;
name
name: string;
role
role: number;
roleCenter?
optional roleCenter: string;
roleId?
optional roleId: string;
subsidiary?
optional subsidiary: number;
OAuthNetSuiteOptions
屬性
accountID
accountID: string;
例如:TSTDRV1234567 或生產環境的 81555
prompt
prompt: string;
提示選項 - 也可於下方查看
連結
https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/section_160855585734.html
authorization.params.prompt
選用的 prompt 參數提供額外的控制,以決定何時顯示登入/同意畫面。以下是您可以與 prompt 參數搭配使用的值:「none」- 不會顯示同意畫面。如果沒有啟用的工作階段,應用程式會傳回錯誤。「login」- 即便有啟用的工作階段,使用者也必須驗證身分。只有在應用程式將請求傳送至帳戶特定的網域時,此選項才有效。「consent」- 每次都會顯示同意畫面。如果沒有啟用的工作階段,使用者必須驗證身分。login consent 或 consent login - 每次都會顯示同意畫面,而且即便有啟用的工作階段,使用者也必須驗證身分,並允許連線至 NetSuite。與 GitHub、Google 和 Facebook 的資料同意畫面類似。
scope
scope: string;
restlets rest_webservices 或 restlets 或 rest_webservices suiteanalytics_connect restlets
userinfo
userinfo: string;
可以是返回執行階段資訊或記錄資訊的 restlet 或 suitelet -> 建議使用 RESTLet
default()
default<P>(config): OAuthConfig<P>
將 NetSuite 登入新增至您的頁面並向其發出請求
設定
免責聲明
使用此提供者,即表示您同意與 NetSuite 分享您的資料。使用此提供者,即表示您同意 NetSuite 的服務條款和隱私權政策。此提供者的作者與 NetSuite 沒有關聯。繼續使用此提供者,您必須是 NetSuite 客戶,而且擁有 NetSuite 帳戶(完整存取權使用者)。確保您的 NetSuite 帳戶中已啟用 OAuth 2.0 功能,並在目前角色/使用者上設定正確的權限
在設定提供者之前,您需要
- 建立整合記錄
- 取消勾選 TBA 驗證流程核取方塊。
- 勾選 OAuth 2.0 驗證流程核取方塊。
- 將下方的
回調網址
複製並貼到重新導向 URI
欄位中。 - 然後選取您要使用的範圍。
- REST Web Services (
rest_webservices
) - 存取 REST Web Services。 - RESTlet(
restlets
) - 存取 RESTLet。 - SuiteAnalytics Connect (
suiteanalytics_connect
) - 存取 SuiteAnalytics Connect。
- REST Web Services (
- 新增您要使用的任何原則。
- 應用程式標誌 (選用)(在要求使用者授與應用程式存取權時顯示給使用者)。- 同意畫面
- 應用程式使用條款 (選用) - 包含應用程式使用條款的 PDF 檔案。- 同意畫面
- 應用程式隱私權政策 (選用) - 包含應用程式隱私權政策的 PDF 檔案。- 同意畫面
- OAuth 2.0 同意原則偏好設定 - 此設定決定是否在使用者每次登入時、僅在首次登入時或永不要求使用者授與應用程式存取權。
- 儲存整合記錄。
- 整合記錄將用於產生提供者的
clientId
和clientSecret
。儲存產生的值以供稍後使用
回調網址
在整合記錄中設定重新導向 URI 時,您必須使用 https
通訊協定。否則,您在嘗試登入時會收到錯誤。(INVALID_LOGIN_ATTEMPT)。如果您在本地測試,可以使用像 ngrok 這類的服務來建立連線至您 localhost 的安全通道。
https://example.com/api/auth/callback/netsuite
我們的 userinfo
需要由一個 suitelet 或 RESTLet 網址組成,該網址提供我們關於使用者的資訊。這必須非常快,因為交握設定檔收集執行不能花費太長時間。最好的方法是先使用 N/runtime
模組來取得基本資訊。 - 以下是 RESTlet 的範例。請務必部署並啟用對「所有角色」的存取權。
RESTLet 回調處理程式範例
請務必部署並使用 URI 的任何用法之外部 RESTLet URL。
* /**
* @NApiVersion 2.1
* @NScriptType Restlet
*/
define(["N/runtime"], /**
@param{runtime} runtimee
/ (runtime) => {
/**
* Defines the function that is executed when a GET request is sent to a RESTlet.
* @param {Object} requestParams - Parameters from HTTP request URL; parameters passed as an Object (for all supported
* content types)
* @returns {string | Object} HTTP response body; returns a string when request Content-Type is 'text/plain'; returns an
* Object when request Content-Type is 'application/json' or 'application/xml'
* @since 2015.2
*/
const get = (requestParams) => {
let userObject = runtime.getCurrentUser();
try {
log.debug({ title: "Payload received:", details: requestParams });
const { id, name, role, location, email, contact } = userObject;
log.audit({ title: "Current User Ran", details: name });
let user = {
id,
name,
role,
location,
email,
contact,
};
log.debug({ title: "Returning user", details: user });
return JSON.stringify(user);
} catch (e) {
log.error({ title: "Error grabbing current user:", details: e });
}
};
return {
get,
};
);
注意:以上是返回基本執行階段資訊的範例。請務必建立新的腳本記錄和部署記錄。儲存部署記錄後,我們將取得 RESTLet 的 URL。
組態
import { Auth } from "@auth/core"
import Netsuite from "@auth/core/providers/netsuite"
const request = new Request(origin)
const response = await Auth(request, {
providers: [
NetSuite({
accountID: NETSUITE_ACCOUNT_ID, // EX: TSTDRV1234567 or 81555 for prod, and 1234567-SB1 for Sandbox accounts not "_" use "-".
// Returns the current user using the N/runtime module. This url can be a suitelet or RESTlet (Recommended)
// Using getCurrentUser(); So we match this schema returned from this RESTlet in the profile callback. (Required)
userinfo: "https://1234567.restlets.api.netsuite.com/app/site/hosting/restlet.nl?script=123&deploy=1",
})
],
})
資源
注意事項
請確保 userinfo
與設定檔回呼的傳回類型相符,以確保正確讀取使用者工作階段。若要覆寫您的使用案例的預設值,請查看自訂內建 OAuth 供應商。
類型參數
類型參數 |
---|
P 繼承 NetSuiteProfile |
參數
參數 | 類型 |
---|---|
config | OAuthUserConfig <P > & OAuthNetSuiteOptions |
傳回
OAuthConfig
<P
>