簡體   English   中英

谷歌 OAuth2 請求中的 redirect_uri 究竟是什么,用於在移動應用中獲取授權碼?

[英]What exactly is redirect_uri in Google OAuth2 request for getting authorization code in Mobile App?

根據 Mobile App Google 文檔,有一個名為redirect_uri的參數我不清楚。 例如,在Google OAuth2的Web App流程中,程序是前端、后端和google服務器之間的一些通信。 實際上,后端准備了兩個端點,一個用於重定向到將由前端調用的 google auth 頁面,另一個端點是/oauth2callback ,它將由 google 服務器作為redirect_uri調用。

我的問題是,移動應用流程中的redirect_uri是什么? 我的后端/oath2callback是否相同或移動應用程序流不需要任何后端部分?


[筆記]:

實際上,我將從移動端接收憑證內容,包括 access_token、refresh_token 等,並將其存儲到 db 中,並用於在服務器端調用 google API。


[更新]

這是我實現的流程:

在此處輸入圖像描述

重定向 uri 實際上不區分它是后端還是前端。

當您在 Google 中創建 authz 憑據時,您應該定義重定向方法和 uri 本身。 這是 google 從您鏈接的文檔中建議的類型:

Custom URI scheme (Android, iOS, UWP) A custom URI scheme is recommended for Android apps, iOS apps, and Universal Windows Platform (UWP) apps.

uri 方案告訴操作系統,當它看到匹配的 url 時,打開特定的應用程序(而不是瀏覽器)。

顯然,如果您使用手機的web瀏覽器進行流量,那么您不必擔心自定義方案。 這甚至是本機應用程序 rfc中的首選方法。

我認為您想要實現的目標可以通過以下方式完成:

在移動應用上實現授權請求,並以重定向回您的應用的方式設置 redirect_uri,即:聲明 url 與您的應用。 當您在應用程序中獲取身份驗證代碼時,將該身份驗證代碼發送到您的后端,並從您的后端執行令牌請求。 這樣,您將在后端擁有所有令牌。

流程是:

  1. 從移動應用程序到 OAuth 提供商(例如:Google)的授權請求。
  2. Google 使用 auth_code 響應您的移動應用程序。
  3. 將該 auth_code 發送到后端(這是您自己的令牌請求路由)。
  4. 使用 auth_code 在后端執行令牌請求並獲取 access_token 和 refresh_token - 在這里您可以存儲它。
  5. 使用所需的令牌響應移動應用程序,以便它可以將其用於身份驗證/授權。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM