MCPcopy Create free account
hub / github.com/CesiumGS/cesium-native / parse

Method parse

CesiumIonClient/src/LoginToken.cpp:18–39  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

16
17namespace CesiumIonClient {
18CesiumUtility::Result<LoginToken>
19LoginToken::parse(const std::string& tokenString) {
20 CesiumUtility::Result<rapidjson::Document> payloadResult =
21 CesiumClientCommon::JwtTokenUtility::parseTokenPayload(tokenString);
22 if (!payloadResult.value) {
23 return Result<LoginToken>(std::move(payloadResult.errors));
24 }
25
26 rapidjson::Document& json = *payloadResult.value;
27
28 const auto it = json.FindMember("exp");
29 std::optional<std::time_t> expirationTime =
30 it != json.MemberEnd() && it->value.IsInt64()
31 ? std::make_optional<std::time_t>(std::time_t(it->value.GetInt64()))
32 : std::nullopt;
33
34 if (expirationTime == -1) {
35 expirationTime = std::nullopt;
36 }
37
38 return Result<LoginToken>(LoginToken(tokenString, expirationTime));
39}
40
41bool LoginToken::isValid() const {
42 if (!this->_expirationTime) {

Callers 4

conformFileFunction · 0.45
loadFromSearchPathsMethod · 0.45
index.jsFile · 0.45

Calls

no outgoing calls

Tested by

no test coverage detected