簡體   English   中英

使用代碼使用無服務器React Web應用程序使用Cognito對AWS上的用戶進行身份驗證

[英]Authenticating users on AWS with Cognito for a serverless React web app using codes

因此,這就是我的情況,我有一個Web應用程序,該應用程序是在AWS上開發的無服務器架構。 我正在使用S3托管我的靜態內容,並且我所有的服務器端代碼都在Lambda函數中實現並可以通過API網關進行訪問。 現在,我正在嘗試使用Cognito和用戶池來實現身份驗證層。

我一直按照此頁面上的說明進行操作,並創建了一個用戶池。 完成之后,我可以通過在瀏覽器的地址欄中輸入這樣的URL來測試用戶池:

https://my_subdomain_under_aws/login?response_type=code&client_id=my_app_client_id&redirect_uri=my_callback_url

對我而言,重要的部分是response_type=code ,根據同一文檔,也可以是response_type=token 在這一點上,我不確定它們之間的區別是什么以及如何在它們之間進行選擇。

無論如何,打開提到的URL將帶您進入AWS默認登錄表單。 成功驗證用戶身份后,瀏覽器將使用額外的參數/?code=12345678-1234-1234-1234-123456789012重定向到所提供的redirect_uri 在這一點上,我認為我應該提取code (在客戶端使用Javascript)並將其傳遞給API網關,然后使用它來驗證用戶身份。 但是我不確定如何。 我發現此頁面解釋了令牌的步驟,但是代碼呢?

如果要進行代碼授予,則需要將代碼轉發到身份驗證API后端,並從中獲取id_token。 或者,您可以將刷新令牌安全地存儲在后端中,以便可以使用它在當前的id_token過期之前發出新的id_token。 使用此id_token,您可以調用API,從而可以在API網關自定義授權的Lambda或使用Cognito Authorizer驗證id_token。

但是,可以使用AWS Amplify JS庫進一步簡化Cognito的植入。 AWS最近引入了此功能以實施完整的身份驗證流程,以最大程度地減少工作量。

暫無
暫無

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

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