From af9a689310204e9ee028a23cd22e04cda159b259 Mon Sep 17 00:00:00 2001 From: zhouyan Date: Tue, 5 Jul 2022 12:46:06 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=90=8C=E6=AD=A5=E9=89=B4?= =?UTF-8?q?=E6=9D=83=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zhouyan Change-Id: If558c43d23784a68442e7330c34c4164546689dc --- .../accesstoken/napi/include/napi_atmanager.h | 1 + .../accesstoken/napi/src/napi_atmanager.cpp | 29 +++++++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/interfaces/kits/accesstoken/napi/include/napi_atmanager.h b/interfaces/kits/accesstoken/napi/include/napi_atmanager.h index c885972f4..1b68d9ee7 100644 --- a/interfaces/kits/accesstoken/napi/include/napi_atmanager.h +++ b/interfaces/kits/accesstoken/napi/include/napi_atmanager.h @@ -57,6 +57,7 @@ private: static napi_value JsConstructor(napi_env env, napi_callback_info cbinfo); static napi_value CreateAtManager(napi_env env, napi_callback_info cbInfo); static napi_value VerifyAccessToken(napi_env env, napi_callback_info info); + static napi_value VerifyAccessTokenSync(napi_env env, napi_callback_info info); static napi_value GrantUserGrantedPermission(napi_env env, napi_callback_info info); static napi_value RevokeUserGrantedPermission(napi_env env, napi_callback_info info); static napi_value GetPermissionFlags(napi_env env, napi_callback_info info); diff --git a/interfaces/kits/accesstoken/napi/src/napi_atmanager.cpp b/interfaces/kits/accesstoken/napi/src/napi_atmanager.cpp index 3ce6ba036..a74f44ccc 100644 --- a/interfaces/kits/accesstoken/napi/src/napi_atmanager.cpp +++ b/interfaces/kits/accesstoken/napi/src/napi_atmanager.cpp @@ -51,6 +51,7 @@ napi_value NapiAtManager::Init(napi_env env, napi_value exports) napi_property_descriptor properties[] = { DECLARE_NAPI_FUNCTION("verifyAccessToken", VerifyAccessToken), + DECLARE_NAPI_FUNCTION("verifyAccessTokenSync", VerifyAccessTokenSync), DECLARE_NAPI_FUNCTION("grantUserGrantedPermission", GrantUserGrantedPermission), DECLARE_NAPI_FUNCTION("revokeUserGrantedPermission", RevokeUserGrantedPermission), DECLARE_NAPI_FUNCTION("getPermissionFlags", GetPermissionFlags) @@ -207,6 +208,34 @@ napi_value NapiAtManager::VerifyAccessToken(napi_env env, napi_callback_info inf return result; } +napi_value NapiAtManager::VerifyAccessTokenSync(napi_env env, napi_callback_info info) +{ + ACCESSTOKEN_LOG_DEBUG(LABEL, "VerifyAccessToken begin."); + + auto *asyncContext = new AtManagerAsyncContext(); // for async work deliver data + if (asyncContext == nullptr) { + ACCESSTOKEN_LOG_ERROR(LABEL, "new struct fail."); + return nullptr; + } + + ParseInputVerifyPermissionOrGetFlag(env, info, *asyncContext); + if (asyncContext->result == AT_PERM_OPERA_FAIL) { + delete asyncContext; + return nullptr; + } + + // use innerkit class method to verify permission + asyncContext->result = AccessTokenKit::VerifyAccessToken(asyncContext->tokenId, + asyncContext->permissionName); + + napi_value result = nullptr; + napi_create_int32(env, asyncContext->result, &result); // verify result + + ACCESSTOKEN_LOG_DEBUG(LABEL, "VerifyAccessToken end."); + + return result; +} + void NapiAtManager::ParseInputGrantOrRevokePermission(const napi_env env, const napi_callback_info info, AtManagerAsyncContext& asyncContext) { -- Gitee