放大我无法获取在 oauth 注册的用户的 Sub 和其他属性



当用户使用oauth登录时,我需要获取用户的属性。目前Hub.listen向我返回一些用户数据,如下所示:

{
  "Session": null, 
  "authenticationFlowType": "USER_SRP_AUTH", 
  "client": {
    "endpoint": "https://cognito-idp.us-east-1.amazonaws.com/", 
    "fetchOptions": [Object]
  }, 
  "keyPrefix": "CognitoIdentityServiceProvider.vifuv747v73gj48v", 
  "pool": {
    "advancedSecurityDataCollectionFlag": true, 
    "client": [Client], 
    "clientId": "vifuv747v73gj48v", 
    "storage": [Function MemoryStorage], 
    "userPoolId": "us-east-1_gkfke8e", 
    "wrapRefreshSessionCallback": [Function anonymous]
  }, 
  "signInUserSession": {
    "accessToken": [CognitoAccessToken], 
    "clockDrift": 0, 
    "idToken": [CognitoIdToken], 
    "refreshToken": [CognitoRefreshToken]
  }, 
  "storage": [Function MemoryStorage], 
  "userDataKey": "CognitoIdentityServiceProvider.sdfj656fs5efsdf45es.Google_0000000000000000000000.userData", 
  "username": "Google_0000000000000000000000"
}

此外,我无法使用currentAuthenticatedUser() 访问它们

const { attributes } = await Auth.currentAuthenticatedUser();
//attributes === undefined

当用户注册时,我必须在数据库中执行某些任务,等等。因此,我想知道如何识别oauth的登录是否创建了一个新帐户来执行必要的任务。或者,如果失败,我可以访问子,检查该用户是否已经存在,并在它是新用户的情况下执行任务

了解如何在使用Oauth登录时访问属性:

const user = await Auth.currentAuthenticatedUser();
const attributes = user.signInUserSession?.idToken?.payload;

我注意到这增加了一些额外的属性,但它满足了我的需要。

相关内容

最新更新