[AWS]Serverless API(二)

GaryLin
Gary的程式學習紀錄簿
Aug 11, 2023

Cognito設定

接下來是AWS Cognito,這部分有點麻煩,和之前使用過的Firebase Authentication比起來差異很大,多了一堆設定,由於我是自學所以筆記會主要在使用的部分,像是設定、註冊、取得token

Cognito設定

首先建立使用者集區,身份驗證這邊設定使用mail登入,不連接第三方驗證

接下來安全要求MFA可以改為選用或取消,在一開始接續登入會比較單純,其他部分就用預設

然後設定註冊資訊,這邊主要增加註冊時的必要欄位,有特殊需要也可以增加別的欄位,這次就只增加姓名,其他預設就好

接下來是設定訊息,由於這次是設定Mail驗證,所以只有設定電子郵件部分,有設定SES的可以直接輸入SES的資訊,不過這次目的在測試串接所以雖然會有限制,但改為使用 Cognito 傳送電子郵件會比較簡單

麻煩的部分來了,接下來設定整合應用程式,這邊我們選用使用 Cognito 託管 UI,這樣等等我們會有一個登入頁面,網域就用Cognito 網域,由於之後會整合Lambda,所以在身份驗證那邊增加ALLOW_CUSTOM_AUTH

到這邊cognito基本建立完成

來試著進入登入首頁,應用程式用戶端id在應用程式整合頁面下面可以找到

https://{你之前輸入的網域}.auth.ap-southeast-1.amazoncognito.com/login?response_type=token&client_id={應用程式用戶端id}&redirect_uri=http://localhost

然後可以點下面sign up進行註冊(流程很簡單就不附圖了)

之後用同一連接登入,token就會在登入後的網址上,後面整合API gateway要用到的是id token

接下來來把之前建立的API gateway加上cognito驗證

然後可以拿前面的id token來測試是否成功,回應200代表成功了

接下來來把授權設置到API上,先進入方法請求中

在授權裡選擇剛剛建立的cognito授權(有時候建立完不會馬上出現,要等一下重整就會出來)

先這樣就可以,然後部署到測試環境來用POSTMAN測看看(在測試裡會測不出)

然後我們來讓api能取得token內的uuid,首先加入下面程式碼

用postman測試可以取得回傳資訊

比對Cognito內的uuid確認相同

好了,從建立cognito到整合api gateway和lambda取得uuid差不多就這樣,這算是最簡單的整合方式吧,如果有人有緣進到這篇筆記有看到做錯的部分可以和我聯繫一起討論喔

--

--