簡體   English   中英

Apgigility OAuth2,用戶和客戶端/授權碼之間的鏈接

[英]Apgigility OAuth2, link between User and Client/AuthorizationCode

我在 OAuth2 授權、身份驗證和用戶鏈接方面苦苦掙扎。 到目前為止我所做的:

我已經創建了一個客戶端,這是秘密。 所有重定向等都在工作。 授予類型密碼適用於自己的本機應用程序(例如 Android 和 iOS)

但是對於訪問令牌,如果授予類型為授權代碼,則user_idNULL 如何分配用戶訪問令牌或授權碼? Apigility 是否有提供登錄屏幕的模塊? 我只被要求提供“允許”或“禁止”應用程序,但從不要求我提供用戶名和密碼。

更新:
問題與提供 OAuth2 訪問第三方頁面有關,例如 IFTTT。 他們打開/oauth/authorize頁面,我在某處引導用戶登錄?! 確定相關用戶? 是否有用於此的現有模塊?

出於安全原因,第三方站點(例如 IFTTT)不使用密碼授予類型。 與其他頁面相比,工作流程是:用戶是否經過身份驗證? 是:顯示接受/拒絕按鈕。 否:用戶必須登錄,之后將被重定向到 /oauth/authorize 頁面。 那么在apigility中是否有一種通用的方法來檢查用戶是否已登錄,如果沒有,則重定向到登錄掩碼?

要使用 OAuth2 使用用戶名和密碼進行身份驗證,您應該使用grant_type=password

我不確定 Apigility 中是否有登錄屏幕。 但我認為它不應該擁有它,因為 Apigility 已經允許一個或多個端點通過 OAuth2 實現這一點,更具體地說,通過OAuth2 Server Library for PHP

怎么做

  1. 將授權類型添加到客戶端:
    • 在您的客戶端表( oauth_clients.grant_types列)上設置"password"
  2. 創建一個新的身份驗證適配器 type=oauth2。
  3. 創建一個帖子到身份驗證網址,如下所示。

    • url=localhost:8080/oauth ,其中localhost:8080是運行 apigility 的地方, /oauth是配置的身份驗證適配器 URL。
    • 有效載荷:

       { "username": "USERNAME", "password": "PASSWORD", "grant_type": "password", "client_id": "CLIENT_ID" }
  4. 登錄成功后,它將返回訪問令牌。

暫無
暫無

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

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