Web應用怎樣獲取Access Token?

来源:https://www.cnblogs.com/hmscore/archive/2022/12/27/17008162.html
-Advertisement-
Play Games

1.在聯盟創建伺服器應用 參考文檔:開發準備 2.獲取用戶級Access Token 2.1 獲取code 參考文檔:接入華為帳號獲取憑證 2.1.1 先按照跳轉鏈接進行配置url https://oauth-login.cloud.huawei.com/oauth2/v3/authorize? r ...


1.在聯盟創建伺服器應用

參考文檔:開發準備

2.獲取用戶級Access Token

2.1 獲取code

參考文檔:接入華為帳號獲取憑證

2.1.1 先按照跳轉鏈接進行配置url

https://oauth-login.cloud.huawei.com/oauth2/v3/authorize?
response_type=code&
access_type=offline&
state=state_parameter_passthrough_value&
client_id=APP ID&
redirect_uri=應用的回調地址&
scope=openid+profile

介面的描述和參數如下表所示:

示例:創建測試的App

傳入url: https://oauth-login.cloud.huawei.com/oauth2/v3/authorize?response_type=code&access_type=offline&client_id=107408391&scope=openid+profile&redirect_uri=https://www.thirdwebdemo.com/redirect_url

2.1.2 用戶登錄並授權

當請求跳轉到OAuth服務,OAuth服務會引導用戶進行授權,彈出授權頁面給用戶,顯示應用的名稱和圖標以及該應用所申請授權的scope許可權列表,輸入華為帳號及密碼完成登錄授權。

2.1.3 OAuth服務將響應值通過回調地址redirect_uri回調給應用。

如果用戶同意授權,則回調請求中帶有授權碼code。

https://www.thirdwebdemo.com/redirect_url?
code=<返回的授權碼code>

如果用戶不同意授權,則回調請求中包含錯誤消息。

https://www.thirdwebdemo.com/redirect_url #error=1107&error_description=access+denied

2.2 通過code獲取Access Token

參考文檔:獲取憑證Access Token

Authorization Code只有5分鐘有效期,並且用完一次就會失效,請重新由用戶授權,生成Authorization Code。

2.2.1 介面說明

2.2.2 直接通過code獲取access_token、refresh_token

備註:通過2.1.3獲取的code需要UrlDecode後再使用

Postman請求示例:

請求示例:

POST /oauth2/v3/token HTTP/1.1
Host: oauth-login.cloud.huawei.com
Cache-Control: no-cache
Postman-Token: 923683a5-7379-03f5-b83f-072ba217fc65
Content-Type: application/x-www-form-urlencoded

grant_type=authorization_code&code=DwEEABlWuXdOMrHWphJ7ixKxqkMiTfdoFX11KIcY0CP8gL2Qq5b5MNZpGtPWHKK5KBHm6u6KDP1BXq8JRunU4xIz4DV2zbdGCzEPCbuRaDz%2FzgbzWV6ty2K1TcbToSEdDszr1to17JbGiI5yM7oUx5kEf200rCvVBEGWy8a%2BBCADZ8%2BWPAAEd2O%2BUnjqoAhDSjs2s3ate0heX3DFAUrtwIOcZLCK%2FWby%2BU2oD2eaXX0CXhBNY5PE0nzBLxr4%2B5%2BYH%2BFh8%2BSssOl3repWjH0bxni8iQ%3D%3D&client_id=107408391&client_secret=caa9b93ef209bcb8f754a5742b7d617d5db2bd5901ae8656b60e79cca93825f8&redirect_uri=https%3A%2F%2Fwww.thirdwebdemo.com%2Fredirect_url

2.2.3 通過refresh_token獲取access_token

code的有效期只有5分鐘,refresh_token的有效期半年,access_token的有效期1個小時。不建議每次都獲取code來換取access_token,可以直接保存refresh_token,再使用refresh_token換access_token的方式。

請求示例:

POST /oauth2/v3/token HTTP/1.1
Host: oauth-login.cloud.huawei.com
Cache-Control: no-cache
Postman-Token: 53d26c97-c7d8-3d49-042a-db7a4b2768a5
Content-Type: application/x-www-form-urlencoded

grant_type=refresh_token&client_id=107408391&client_secret=caa9b93ef209bcb8f754a5742b7d617d5db2bd5901ae8656b60e79cca93825f8&refresh_token=DAECANR5QD9Ta3YKIn2Pwpmq8g6CyOGcsz3iNsxq8YXBpZs6EGlqb%2FM8Iyc%2FXVORdoqb%2FaZXKs9jqz72kQCmp9Om%2B7%2Fp7ff6QfH%2FKN32GwsE9xq%2BTbDT

3 獲取應用級Access Token

參考文檔:客戶端模式(Client Credentials)

請求示例:

POST /oauth2/v3/token HTTP/1.1
Host: oauth-login.cloud.huawei.com
Cache-Control: no-cache
Postman-Token: 1e120cb0-fa6f-e622-1bf0-66a13c82b643
Content-Type: application/x-www-form-urlencoded

grant_type=client_credentials&client_id=107408391&client_secret=caa9b93ef209bcb8f754a5742b7d617d5db2bd5901ae8656b60e79cca93825f8

瞭解更多詳情>>

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

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


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

-Advertisement-
Play Games
更多相關文章
  • 在上篇隨筆《基於SqlSugar的開發框架循序漸進介紹(23)-- Winform端管理系統中平滑增加對Web API對接的需求》中介紹了基於一個介面,實現對兩種不同接入方式(直接訪問資料庫實現,基於Web API代理類實現)的處理,由於定義的介面中,我們為了方便,也是用了Lambda表達式的進行一... ...
  • 🧭 系列導航 Blazor Server 從頭開始:01 創建項目 📖 閱讀說明 此部分內容旨在說明各種Blazor的基本概念與使用方法,並沒有提供實際的教程式代碼,所以讀者沒必要把代碼敲一遍。沒得意義。 🔧 Razor 組件 Razor組件是Blazor應用的基本單元,每一個頁面或頁面上的元 ...
  • 最近手癢,正好陽性在家,就打算把代碼再撿起來看看,學習下這些年來都有什麼新東西出現。就看到了微軟出的.Net 7 Blazor相關的內容。 走了一遍微軟官方的教程,發現用處不大,(可能是年紀已高,也可能是斷代太久),所以給這段時間立個小目標,從頭開始學習一下這個Blazor。 有關Blazor Se ...
  • 註意:本文旨在解決電腦問題,請勿將本文所述技巧用於非法用途 實際上,如果目的只是為了進入windows桌面,那麼想要破解密碼還不如更改方便。不過同樣有解出賬戶密碼的方法。 下麵我就介紹幾個更改密碼的方法。對於幾個方法在操作當中可能發生的某些問題,也會提出解決方案。破解的方法放在最後。這裡面沒準有各位 ...
  • # In[1]magicians = ['alice', 'david', 'carolina']for i in magicians: print(i)'''4.1.1 深入地研究迴圈'''a = list(range(1, 10, 2))print(a)print(sum(a))''' 4.3. ...
  • 「如果港口是國民經濟的晴雨表,那麼智慧港口就是窺探港口未來發展的視窗。」 12月16日,2022智慧港口大會在浙江嘉興舉行,會議以“加快數字化轉型 賦能高質量發展”為主題,由中國港口協會、中國交通通信信息中心、浙江省海港集團聯合主辦,來自行業主管部門及港航管理部門、各大港口集團、科研院校、解決方案供 ...
  • “某中心受病毒攻擊,導致服務中斷,線上業務被迫暫停” “某公司員工誤操作刪庫,核心業務數據部分丟失,無法完全找回” “由於伺服器斷線,某醫院信息系統癱瘓近4小時,期間病人無法使用醫保卡掛號和結算” …… 數據丟失風險防不勝防,企業構建數據備份方案迫在眉睫! 此次騰訊雲資料庫備份服務DBS攜手富途證券 ...
  • 摘要:解決數據問題的本質,還要從數據層面入手,資料庫的價值就十分關鍵。 過去很長一段時間,不動產行業的數字化程度都是比較低的,特別在業務層面,存在大量碎片化和多主體的問題,導致在數據層面的標準化和數據結構統一化不足;而且在不動產行業全生命周期中,每個階段都頻繁涉及到數據流轉問題,對數據一致性和安全性 ...
一周排行
    -Advertisement-
    Play Games
  • 一:背景 1. 講故事 年前遇到了好幾例托管堆被損壞的案例,有些運氣好一些,從被破壞的托管堆記憶體現場能觀測出大概是什麼問題,但更多的情況下是無法做出準確判斷的,原因就在於生成的dump是第二現場,借用之前文章的一張圖,大家可以理解一下。 為了幫助更多受此問題困擾的朋友,這篇來整理一下如何 快狠準 的 ...
  • 前言 .NET6 開始,.NET Croe API 項目取消了 Startup.cs 文件,在 Program.cs 文件的 Main 函數中完成服務的註冊和中間件管道的管理。但當我們項目引入更多包的時候,Program.cs 文件也會看起來很臃腫。 而且,我們不只會有一個後端項目,為了方便快速創建 ...
  • 目錄 背景 get 與 post 的區別 所有介面都用 post 請求? 背景 最近在逛知乎的時候發現一個有趣的問題:公司規定所有介面都用 post 請求,這是為什麼? 看到這個問題的時候其實我也挺有感觸的,因為我也曾經這樣問過我自己。在上上一家公司的時候接到一個項目是從零開始搭建一個微服務,當時就 ...
  • *以下內容為本人的學習筆記,如需要轉載,請聲明原文鏈接 微信公眾號「englyf」https://mp.weixin.qq.com/s/2GFLTstDC7w6u3fTJxflNA 本文大概 1685 個字,閱讀需花 6 分鐘內容不多, 但也花了一些精力如要交流, 歡迎關註我然後評論區留言 謝謝你的 ...
  • 在新版本的pandas中,上述代碼會引起警告,建議改成SQLAlchemy connectable(engine/connection),後續代碼將引入這種升級的連接方式。 ...
  • 幾乎所有的高級編程語言都有自己的垃圾回收機制,開發者不需要關註記憶體的申請與釋放,Python 也不例外。Python 官方團隊的文章 https://devguide.python.org/internals/garbage-collector 詳細介紹了 Python 中的垃圾回收演算法,本文是這篇 ...
  • 如果您想查找高於或低於平均值的數字,可以不必計算該平均值,就能查看更高或更低的值。通過Java應用程式,可以自動突出顯示這些數字。除了快速突出顯示高於或低於平均值的值外,您還可以查看高於或低於的值的個數。現在讓我們看看如何在 Java應用程式中實現此操作。 引入jar包 導入方法1: 手動引入。將  ...
  • 第一種方式:使用{} firstDict = {"name": "wang yuan wai ", "age" : 25} 說明:{}為創建一個空的字典對象 第二種方式:使用fromkeys()方法 second_dict = dict.fromkeys(("name", "age")) #valu ...
  • 在golang中可以使用a := b這種方式將b賦值給a,只有當b能進行深拷貝時a與b才不會互相影響,否則就需要進行更為複雜的深拷貝。 下麵就是Go賦值操作的一個說明: Go語言中所有賦值操作都是值傳遞,如果結構中不含指針,則直接賦值就是深度拷貝;如果結構中含有指針(包括自定義指針,以及切片,map ...
  • 本文結合京東監控埋點場景,對解決樣板代碼的技術選型方案進行分析,給出最終解決方案後,結合理論和實踐進一步展開。通過關註文中的技術分析過程和技術場景,讀者可收穫一種樣板代碼思想過程和解決思路,並對Java編譯器底層有初步瞭解。 ...