Custom User Validation
Catalystは、カスタムファンクションを使用してアプリケーションのエンドユーザーを検証および認可するオプションを提供します。このオプションにより、ユーザーを認可する方法のロジックを含むCatalyst Basic I/Oファンクションを設定できます。ユーザーのサインアップ時に、ユーザーの資格情報がこのBasic I/Oファンクションを通じて検証されます。
Java、Node.js、PythonでのCustom User Validationファンクションのサンプルコードスニペットを以下に示します:
public class MainClass implements ZCFunction {
private static final Logger LOGGER = Logger.getLogger(MainClass.class.getName());
@Override
public void runner(Context context, BasicIO basicIO) throws Exception {
try {
ZCProject.initProject();
ZCSignupUserValidationRequest requestDetails = ZCSignupUserService.getSignupValidationRequest(basicIO);
if (requestDetails != null) {
/Validation logic starts /
LOGGER.info(“Inside null check”);
ZCSignupUserValidationResponse validationResponse = ZCSignupUserValidationResponse.getInstance();
if (requestDetails.getUserDetails().getEmailId().contains("@notallowedmail")) {
validationResponse.setStatus(ZCSignupValidationStatus.FAILURE); // ユーザーの認証が失敗した
} else {
validationResponse.setStatus(ZCSignupValidationStatus.SUCCESS); // 認証成功時に発生するアクションはカスタマイズ可能
ZCSignupResponseUserDetails respUserDetails = ZCSignupResponseUserDetails.getInstance();
respUserDetails.setFirstName("{customFirstName}");
respUserDetails.setLastName("{customLastname}");
respUserDetails.setRoleIdentifier("{customRoleName}");
respUserDetails.setOrgId("{customOrgId}");
validationResponse.setUserDetails(respUserDetails);
}
basicIO.write(validationResponse);
/ Validation logic ends/
}
} catch (Exception e) {
basicIO.write(e);
LOGGER.log(Level.SEVERE, “Exception in MainClass”, e);
basicIO.setStatus(500);
}
}
}
const catalyst = require(“zcatalyst-sdk-node”);
module.exports = (context, basicIO) => {
const catalystApp = catalyst.initialize(context);
const userManagement = catalystApp.userManagement();
const requestDetails = userManagement.getSignupValidationRequest(basicIO);
if (requestDetails !== undefined) {
if (requestDetails.user_details.email_id.includes(“node”)) {
basicIO.write(
JSON.stringify({
status: “failure”,
})
);
} else {
basicIO.write(
JSON.stringify({
status: “success”,
user_details: {
first_name: “CustomFirstName”,
last_name: “CustomLastName”,
role_identifier: “CustomRole”,
org_id: “CustomOrgID”, //組織IDを指定する場合は、コンソールから正確にコピーしてください。
},
})
);
}
}
context.close();
};
import json
import zcatalyst_sdk
def handler(context, basicio):
app = zcatalyst_sdk.initialize()
auth_service = app.authentication()
request_details = auth_service.get_signup_validation_request(basicio)
if request_details:
if “spam.com” in request_details[“user_details”][“email_id”]:
basicio.write(json.dumps({“status”: “failure”}))
else:
basicio.write(
json.dumps(
{
“status”: “success”,
“user_details”: {
“first_name”: “Amelia”,
“last_name”: “Jack”,
“role_identifier”: “cx_role”,
“org_id”: orgId, # Org IDを指定する場合は、コンソールから正確にコピーされていることを確認してください。
},
}
)
)
context.close()
最終更新日 2026-03-30 13:40:30 +0530 IST
Yes
No
Send your feedback to us