簡體   English   中英

React Native:Auth.signIn() 返回什么?

[英]React Native: What is returned by Auth.signIn()?

我正在使用 react-native 和 Amazon AWS 作為后端進行開發。 我也在使用amplify庫。

對於登錄,我使用以下調用:

const user = await Auth.signIn(...)

https://docs.amplify.aws/lib/auth/emailpassword/q/platform/js#sign-in

https://aws-amplify.github.io/amplify-js/api/classes/authclass.html#signin

我的相關問題:

  1. 我在user變量中得到一個很大的 JSON。 我相信這是AWS credential

  2. 上面的signIn()調用返回 JWT 令牌,它返回 AWS 憑證。 是嗎? 另見帖子:- https://stackoverflow.com/a/59327655/15943787

    上面的帖子提到:

成功對用戶進行身份驗證后,Amazon Cognito 會發布 JSON Web 令牌 (JWT),您可以使用它來保護和授權對您自己的 API 的訪問,或交換 AWS 憑證

上面的說法是什么意思? Auth.signIn()在做什么? 獲取 JWT 令牌或憑據?

  1. 此返回的憑據是否存儲在移動設備中? 默認情況下,在 android 中它是未加密存儲的。 正確的?

  2. 它是否存儲在 sharedPreferences 中?

Auth.signIn()返回API Docs 中定義的CognitoUser對象。

以下來自適用於 Android 的 AWS SDK,但 Javascript 中的數據是相同的,( 在這里找到)。 JWT 令牌存儲在CognitoUser.CognitoUserSession屬性中。

代表單個 Cognito 用戶。 該類封裝了對用戶的所有可能操作以及屬於該用戶的所有令牌。 作為 CognitoUserSession 的用戶令牌存儲在 SharedPreferences 中。 只存儲屬於最后一個成功通過身份驗證的用戶的令牌

所以回答你的問題:

  1. 我在用戶變量中得到一個很大的 JSON。 我相信這是 AWS 憑證?

用戶變量是一個 CognitoUser 對象,它代表單個 CognitoUser。 要獲取 JWT 令牌,請嘗試user.sessionIduser.tokenId

  1. 上面的 signIn() 調用不返回 JWT 令牌,它返回 AWS 憑證。 是嗎? 另見帖子:- https://stackoverflow.com/a/59327655/15943787

它使用會話和令牌 JWT 更新 CognitoUser。 檢查用戶對象以找到它們,在 Auth.signIn() 之后,如果 AWS 發布令牌,用戶對象將更新

  1. 此返回的憑據是否存儲在移動設備中? 默認情況下,在 android 中它是未加密存儲的。 正確的?

它被存儲在共享首選項中。 所以是的,它在設備上並且未加密。 但是 AWS 會在用戶與 Cognito 自動交互時管理更新和更改 JWT。

  1. 它是否存儲在 sharedPreferences 中?

是的,它存儲在 sharedPreferences 中

暫無
暫無

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

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