【FAQ】接入華為帳號服務過程中常見問題總結

来源:https://www.cnblogs.com/hmscore/archive/2022/06/02/16336900.html
-Advertisement-
Play Games

華為帳號服務(Account Kit)為開發者提供簡單、安全的登錄授權功能,用戶不必輸入帳號、密碼和繁瑣驗證,就可以通過華為帳號快速登錄應用,即刻使用App。這篇文章收集了開發者們集成華為帳號服務中會遇到的典型問題,並給出瞭解決方法,希望為其他遇到類似問題的開發者提供參考。 1 .redirect_ ...


華為帳號服務(Account Kit)為開發者提供簡單、安全的登錄授權功能,用戶不必輸入帳號、密碼和繁瑣驗證,就可以通過華為帳號快速登錄應用,即刻使用App。這篇文章收集了開發者們集成華為帳號服務中會遇到的典型問題,並給出瞭解決方法,希望為其他遇到類似問題的開發者提供參考。

1 .redirect_url是什麼,如何配置回調地址

(1)回調地址redirect_rul不需要是真實的頁面地址,redirect_rul是OAuth2.0協議定義的一個用來做以下用途的虛擬地址,用戶配置一個https://xxxx類似的自定義字元串就好了。
(最好根據自己業務屬性定義一個有意義的字元串)

(2)在OAuth2.0協議中redirect_url的用途如下:

如果是web應用,OAuth伺服器授權後,會回調跳轉到這個地址。web應用需要攔截這個回調地址來接收Auth Code。獲取AT的時候,要把回調地址作為參數傳回,OAuth伺服器會校驗回調地址和code是匹配的,否則返回錯誤碼。

(3)如何設置redirect_url? 參見官網文檔說明

2 .openId、unionId有什麼區別?

openId:同一個用戶,不同應用,openId值不同,單個應用內唯一。

unionId:開發者帳號ID,同一個用戶,同一個開發者帳號下管理的不同應用,unionId相同。

應用接入華為帳號登錄可以獲取到OpenId(同一個用戶的不同應用,OpenId值不同),使用OpenId標識用戶,多個應用之間同一個華為帳號用戶在開發者系統內會被標識為多個用戶。如果開發者希望在多個應用之間標識用戶的唯一性,可以使用UnionId(對於同一個用戶,同一個開發者帳號下管理的不同應用,UnionId值相同)。特別註意的是,標識用戶唯一性的應用必須是在同一個開發者帳號下管理,一個應用轉移到另外一個帳號後,UnionId值也會變化。

3. 怎樣判斷帳號是否已登錄?

通過silentSignIn介面,調用到onSuccess裡面並且拿到的authAccount不為空則說明回調成功,帳號是已登錄狀態。

Task<AuthAccount> task = service.silentSignIn();
        task.addOnSuccessListener(new OnSuccessListener<AuthAccount>() {
            @Override
            public void onSuccess(AuthAccount authAccount) {
                if(null != authAccount) {
                    showLog("success ");

                }
            }
        });

4 .調用服務端介面user.getTokenInfo介面報錯invalid session

(1)排查傳參是否正確

(2)access_token需要UrlEncode一下,不然裡面有特殊符號的解析就會報invalid session

介面文檔:

https://developer.huawei.com/consumer/cn/doc/development/HMSCore-References/account-gettokeninfo-0000001050050585

5 .調用oauth2/v3/token介面,redirect_uri是否必傳

(1)使用Authorization Code換取Access_Token、Refresh Token、ID Token,這個參數是必須要傳入的

(2)使用Refresh Token獲取新的Access Token,redirect_url不需要傳

參考官網文檔

6. Authorization Code 、Access Token、Refresh Token的有效期分別是多久?

Authorization Code的有效期是5分鐘,該code是一次性的,申請後使用一次之後就會失效。

Access Token的有效期是1小時。

Refresh Token Token當前預設有效期180天。

7. 常見錯誤碼分析

7.1 錯誤碼:907135700

該錯誤碼說明調用網關查詢應用scope失敗,可以排查下麵幾項:

1.排查設備網路是否有問題,一般是當前網路不可用或者當前網路無法正常訪問scope下載站點,比如防火牆限制等。

2.檢查自己的appId是否在開發者聯盟上面已經註冊

3.可能是手機時間錯誤,誤認為SSL證書過期,從而無法下載scope以致鑒權失敗。

7.2 錯誤碼:907135701

該錯誤碼說明openGW沒有配置scope,appid沒有申請許可權,或者環境和appid不匹配導致,可以排查下麵幾項:

1.檢查自己的appId是否在開發者聯盟上面已經註冊

2.查看agconnect-services.json 文件中的app_id是否跟AGC平臺上的appid一致;

3.查看agconnect-services.json文件是否在工程的app目錄下,agconnect-services.json文件必須在app目錄下,如下圖所示:

4.查看appId和HMS spk環境是否匹配,同是商用環境或者測試環境

7.3 錯誤碼:907135702

該錯誤碼說明openGW沒有配置指紋證書,請在開發者聯盟上配置指紋證書,可以排查以下幾點:

1.檢查自己的appId是否在開發者聯盟上面已經註冊

2.SHA256指紋是否在聯盟上配置,可以參考官網文檔

7.4 錯誤碼:6003

該錯誤碼說明證書指紋校驗不匹配,需要檢查當前客戶端應用打包的證書簽名是否與AppGallery Connect網站上配置的簽名一致。

1.打開應用的APK,將其中“META-INF”文件夾解壓出來,得到其中的“CERT.RSA”文件,通過keytool -printcert -file META-INF/CERT.RSA命令列印簽名證書信息。

2.登錄AppGallery Connect,單擊“我的項目”,選擇需要操作項目,進入項目頁面後選擇應用,然後在“項目設置 >常規”中檢查“SHA256證書指紋”配置的信息是否與步驟1)的指紋一致。

證書配置可以參考官網文檔

瞭解更多詳情>>

訪問華為開發者聯盟官網
獲取開髮指導文檔
華為移動服務開源倉庫地址:GitHubGitee

關註我們,第一時間瞭解 HMS Core 最新技術資訊~


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一、 概述 compose 是用來定義和運行一個或多個容器(通常都是多個)運行和應用的工具。使用 compose 可以簡化容器鏡像的構建以及容器的運行。 compose 使用 YAML 文件來定義多容器之間的關係。一個 docker-compose up 就可以把完整的應用跑起來。 本質上,comp ...
  • job提交階段 1、準備好待處理文本。 2、客戶端submit()前,獲取待處理數據的信息,然後根據參數配置,形成一個任務分配的規劃。 3、客戶端向Yarn請求創建MrAppMaster並提交切片等相關信息:job.split、wc.jar、job.xml。Yarn調用ResourceManager ...
  • 資料庫安全,是指以保護資料庫系統、資料庫伺服器和資料庫中的數據、應用、存儲,以及相關網路連接為目的,防止資料庫系統及其數據遭到泄露、篡改或破壞的安全技術。 資料庫是企業最為核心的數據保護對象。與傳統的網路安全防護體系不同,資料庫安全技術更加註重從客戶內部的角度出發做安全,其安全要求包括了保密性、完整 ...
  • 作者:王志斌 編輯:鐘華龍 本文來自社區小伙伴 王志斌 的投稿。從小白的角度,帶你一步步實現將 RadonDB PostgreSQL 集群部署到 Kubernetes 上。文章分為上下兩部分,《第一部 Kubernetes 環境準備》已經發佈。第二部分將帶大家部署一個 RadonDB Postgre ...
  • 好消息,騰訊雲資料庫團隊智能調參CDBTune產品現已進入內測階段,歡迎資料庫愛好者、使用者、開發者前來測試。 CDBTune(cloud database tune)是基於2019至2021年間騰訊雲資料庫團隊連續發表兩篇頂級論文的研究成果,對雲資料庫進行調優的一整套解決方案,旨在充分藉助深度學習 ...
  • CITY表: Field Type ID number NAME VARCHAR2(17) COUNTRYCODE VARCHAR2(3) DISTRICT VARCHAR2(20) POPULATION number 1.Query all columns for all American cit ...
  • Mysql 5.7的安裝搭建 首先去到官方網站的下載鏈接中找到對應你Linux伺服器版本的mysql軟體包 https://dev.mysql.com/downloads/repo/yum/ 我使用的是CentOS7所以下載Red HAT Enterprise Linux 7版本的軟體包,然後跳轉至 ...
  • 華為開發者聯盟與艾瑞咨詢聯合發佈《2022年移動應用出海趨勢洞察白皮書》,本白皮書結合多種研究方法分析移動應用的出海吸引力、海外市場選擇、出海的痛點及挑戰,為現階段移動應用企業的出海戰略決策提供市場洞察,並針對出海挑戰呈現應對策略,助力移動應用開發者出海。 華為開發者聯盟一直致力於全方位聯接全球開發 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...