如何收集和使用您的個人信息
對未成年人的保護
與第三方共享
第三方MCPSever
管理您的個人信息
信息存儲地點及期限
開發者自定義章節
如何聯系我們
隱私政策生效日期
本文參考鴻蒙官方文檔
發表于 02-03 15:54
繼《工業互聯網和人工智能融合賦能行動方案》印發后,1月13日,工業和信息化部再次發布《推動工業互聯網平臺高質量發展行動方案(2026—2028年)》,明確了未來三年
發表于 01-21 13:51
?523次閱讀
美議員提議禁止玩具內置AI聊天 ? 據外媒報道,美國加州州參議員史蒂夫?帕迪利亞提出一項新法案,計劃在未來四年內禁止面向未成年人的AI聊天機器人玩具上市和生產,從而為監管部門建立兒童保護機制爭取時間
發表于 01-07 16:33
?394次閱讀
2025年世界物聯網大會·工業互聯網論壇于11月28日下午在北京海淀區中關村展示中心隆重舉行。本次論壇由世界物聯網大會組委會主辦,中電工業互聯網
發表于 12-05 08:58
?568次閱讀
在智能互聯網深度滲透的今天,產業科技融合不再是抽象概念,而是需要堅實的硬件底座作為支撐。當5G、人工智能、大數據技術重塑產業邊界,智能互聯網推動各行各業從“數字化”向“智能化”跨越,而“算力”成為核心生產要素,主板作為硬件生態的
發表于 11-25 09:27
?311次閱讀
年齡分級作為元服務的重要屬性,在華為應用市場的應用詳情頁展示給用戶,幫助用戶找到適合其年齡段的元服務,從而為未成年人用戶打造純凈的使用環境。
1.AGC提供了調查問卷,根據您回答的內容,自動生成年
發表于 11-21 11:29
互聯網通過提升生產效率、優化資源配置,成為經濟增長的新動能。據預測,到2030年,全球工業互聯網經濟價值將達到15萬億美元,影響全球一半的經濟規模;中國工業
發表于 11-20 09:51
?377次閱讀
繼去年在世界互聯網大會憑借終端計算子系統榮獲“領先科技獎”后,Arm 今年再獲行業認可。11 月 7 日,通過在可持續發展領域的顯著成果,Arm 榮膺本屆世界互聯網大會“杰出貢獻獎”,與聯想、騰訊等
發表于 11-07 17:30
?760次閱讀
,具體解析如下: 一、網絡層:連接物理與數字世界的橋梁 網絡層是工業互聯網的基礎,負責實現人、機、物、系統之間的泛在互聯與數據高效傳輸。其核心架構包括: 工業以太網 :支持實時控制與高帶寬傳輸,如PROFINET、EtherCA
發表于 10-18 09:37
?648次閱讀
截至2025年,中國工業互聯網平臺的數字化進程已進入規模化發展新階段,核心指標呈現以下特征 : 一、基礎能力覆蓋:全要素互聯與全鏈條滲透 設
發表于 09-01 11:38
?808次閱讀
年領跑中國銀行業互聯網金融領域,在互聯網金融服務類解決方案市場蟬聯榜首。在細分領域,互聯網銀行解決方案子市場、互聯網貸款解決方案子市場分別斬
發表于 07-07 12:37
?1220次閱讀
,人們才會更加信任和接受物聯網技術。
綜上所述,物聯網行業的未來發展趨勢非常廣闊。智能家居、工業互聯網、智慧城市、醫療保健以及數據安全和隱私保護都將成為物聯網行業的熱點領域。我們有理
發表于 06-09 15:25
Thread 是專門為 loT 設備提供無線網狀網絡通信的協議,由三星、ARM、Nest 三家企業共同推出。為了加速 Thread 協議普及,多家公司于2014年7月組成 \"Thread
發表于 04-26 23:17
一、概述
通過訂閱用戶信息變更,您可以接收有關用戶及其賬戶的重要更新。當用戶取消元服務的授權信息、注銷華為賬號時,華為賬號服務器會發送通知到元服務,元服務可以根據通知消息進行自身業務處理。
二、用戶信息變更事件介紹
三、訂閱用戶信息變更
訂閱步驟如下:
1.登錄華為開發者聯盟,選擇“管理中心 > API服務 > API庫”。
2.在App Services找到RISC。
3.點擊啟用按鈕,選擇您的項目,點擊確定。
4.點擊訂閱通知按鈕,在彈窗中配置回調地址及訂閱范圍。
說明
回調地址:在開啟訂閱通知后,若華為用戶信息存在變更,會通過發送消息到該地址。
訂閱范圍:訂閱的用戶信息變更事件,詳見用戶信息變更事件介紹。
四、處理通知消息
華為賬號服務器向元服務投遞消息。元服務接收到消息后需要先對消息頭中的令牌進行驗簽,確保消息的完整有效性后解析并獲取用戶信息變更事件詳情。具體步驟如下:
1.驗證消息頭中的令牌簽名。
您可通過任何JWT庫(例如:jwt.io)對其進行解析與驗證。
無論使用哪種庫,您均需完成如下操作:
調用接口(https://risc.cloud.huawei.com/v1beta/public/risc/.well-known/risc-configuration),獲取發行者標識(issuer)與簽名密鑰證書URI(jwks_uri)。
通過依賴的JWT庫,對消息頭中的令牌進行解析,獲取簽名的KeyId。
通過簽名的KeyId,從簽名密鑰證書URI中獲取到JWT簽名的公鑰。
校驗JWT簽名中的aud與訂閱用戶信息變更中提供的Client ID一致。
校驗JWT簽名中的issuer與發行者標識(issuer)一致。
具體驗簽邏輯,請參考如下示例代碼:
Maven依賴配置
<dependencies>
<dependency>
<groupId>com.github.ben-manes.caffeine</groupId>
<artifactId>caffeine</artifactId>
<version>2.9.3</version> <!--此處替換為您項目需要的版本-->
</dependency>
<dependency>
<groupId>com.auth0</groupId>
<artifactId>jwks-rsa</artifactId>
<version>0.21.2</version> <!--此處替換為您項目需要的版本-->
</dependency>
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt-impl</artifactId>
<version>0.11.5</version> <!--此處替換為您項目需要的版本-->
</dependency>
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt-jackson</artifactId>
<version>0.11.5</version> <!--此處替換為您項目需要的版本-->
</dependency>
</dependencies>
Java驗簽代碼示例
import com.auth0.jwk.JwkProvider;
import com.auth0.jwk.UrlJwkProvider;
import com.github.benmanes.caffeine.cache.CacheLoader;
import com.github.benmanes.caffeine.cache.Caffeine;
import com.github.benmanes.caffeine.cache.LoadingCache;
import io.jsonwebtoken.Claims;
import io.jsonwebtoken.Header;
import io.jsonwebtoken.IncorrectClaimException;
import io.jsonwebtoken.JwsHeader;
import io.jsonwebtoken.Jwt;
import io.jsonwebtoken.JwtParser;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SigningKeyResolver;
import io.jsonwebtoken.security.SignatureException;
import org.checkerframework.checker.nullness.qual.NonNull;
import org.checkerframework.checker.nullness.qual.Nullable;
import java.net.MalformedURLException;
import java.net.URL;
import java.security.Key;
import java.security.PublicKey;
import java.util.Objects;
import java.util.concurrent.TimeUnit;
public class RiscDemo {
public static void main(String[] args) {
// 消息請求頭中Authorization: Bearer <token>中的<token>
String token = \"
<token>
\";
// Client ID
String clientId = \"
<Client ID>
\";
Jwt<?, Object> jwt = validateSecurityEventToken(token, clientId);
if (Objects.isNull(jwt)) {
// 驗簽失敗,進行自己邏輯處理
} else {
// 驗簽成功,進行自己邏輯處理
}
}
/**
* 對Authorization頭域中的token進行驗簽
*
* @param token 消息請求頭中Authorization: Bearer <token>中的<token>
* @param clientId Client ID
*
* @Return 返回為null,則表示驗簽失敗,否則表示驗證成功
*/
public static <H extends Header<H>, B> Jwt<H, B> validateSecurityEventToken(String token, String clientId) {
Jwt<H, B> jwt = null;
try {
/**
* 公開配置信息地址:https://risc.cloud.huawei.com/v1beta/public/risc/.well-known/risc-configuration
* 公開配置信息中的issuer值
*/
String issuer = \"id.cloud.huawei.com\";
// 公開配置信息中的jwks_uri值
String jwksUri = \"https://risc.cloud.huawei.com/v1beta/public/risc/certs\";
// 獲取公鑰信息
JwkProvider huaweiCerts = new UrlJwkProvider(new URL(jwksUri), null, null);
LoadingCache<String, PublicKey> cache = Caffeine.newBuilder()
.expireAfterWrite(1, TimeUnit.DAYS)
.build(new CacheLoader<String, PublicKey>() {
@Override
public @Nullable PublicKey load(@NonNull String key) throws Exception {
return huaweiCerts.get(key).getPublicKey();
}
});
SigningKeyResolver signingKeyResolver = new SigningKeyResolver() {
private PublicKey getPublicKey(JwsHeader<?> jwsHeader) {
try {
return cache.get(jwsHeader.getKeyId());
} catch (Exception e) {
throw new RuntimeException(e);
}
}
@Override
public Key resolveSigningKey(JwsHeader jwsHeader, Claims claims) {
return getPublicKey(jwsHeader);
}
@Override
public Key resolveSigningKey(JwsHeader jwsHeader, String s) {
return getPublicKey(jwsHeader);
}
};
// 驗證并解析消息內容
JwtParser parser = Jwts.parserBuilder()
.requireIssuer(issuer)
.requireAudience(clientId)
.setAllowedClockSkewSeconds(60)
.setSigningKeyResolver(signingKeyResolver)
.build();
jwt = parser.parse(token);
} catch (IncorrectClaimException e) {
// 消息的claim無效,針對異常進行處理(如:日志記錄)
e.printStackTrace();
} catch (SignatureException e) {
// 驗簽失敗,針對異常進行處理(如:日志記錄)
e.printStackTrace();
} catch (MalformedURLException e) {
// 無效的jwksUri,檢查傳入的jwksUri是否與https://risc.cloud.huawei.com/v1beta/public/risc/.well-known/risc-configuration返回jwks_uri一致
e.printStackTrace();
} catch (Exception e) {
// 其他異常,業務自行處理
e.printStackTrace();
}
return jwt;
}
}
2.處理消息體。
消息體格式如下
{
\"aud\": \"<
開發者Client ID
>\",
\"iss\": \"id.cloud.huawei.com\",
\"iat\": 1727619834,
\"jti\": \"6672ed7d5c5e4c3c92f343ecac40f326\",
\"events\": {
\"https://schemas.openid.net/secevent/risc/event-type/account-purged\": {
\"subject\": {
\"sub\": \"<
觸發事件用戶的UnionID
>\",
\"subject_type\": \"iss_sub\",
\"extra\": \"<
觸發事件用戶的OpenID
>\",
\"iss\": \"id.cloud.huawei.com\"
}
}
}
}
其中,各字段含義如下:
本文主要引用參考HarmonyOS官方網站
發表于 04-16 17:43
、能力范圍
登錄:提供登錄服務,讓用戶使用華為賬號快速登錄元服務。
獲取華為賬號用戶信息:獲取用戶的基本開放信息,如頭像、手機號、收貨地址、發票抬頭。
未成年人模式:獲取未成年人模式的開啟狀態及年齡段
發表于 03-31 12:08
評論