Reactjs - 我可以在我网站的所有页面中使用 AWS Amplify 的 Auth.authenticatedUser 函数吗?
Reactjs - Can I use Auth.authenticatedUser function from AWS Amplify in all pages of my website?
我的问题是概念性的,所以我不会在这里写任何代码。
我正在使用 Reactjs 构建我的网站,并且所有身份验证过程都在正常工作。
为了方便起见,我将考虑网站中的 03 页:
- 第 1 页:使用 Auth.signIn 方法的用户登录页面。当用户通过身份验证时,它会自动转到第 2 页。
第2页:在这个页面中,必须呈现大量来自用户的信息。为此,有一个 API ,其中输入参数是用户名。要获取用户名参数,在呈现页面时会调用 Auth.authenticatedUser 方法。之后调用API从数据库中获取用户信息。假设第 2 页中只有一个按钮可以访问第 3 页。
第3页:这个页面有更多关于用户的信息,需要从数据库中读取。获取这些信息的API又有输入参数为"username"。要获取用户名参数,我有 2 个选项:
选项 1:再次使用 Auth.authenticatedUser 并获取用户名
选项 2:将 "username" 从第 2 页传递到第 3 页作为道具。
在我的例子中,使用选项 1 要容易得多,因为我的网站有很多页面,并且将道具从一个页面传递到另一个页面是一项艰巨的任务 - 我最终将不得不使用 redux。
我的问题是:
- 在所有页面中使用Auth.authenticatedUser获取用户名信息是否有问题?这样做有任何缺点(即渲染页面的速度等...)
来自 source it looks like Amplify caches the user both in memory and in localStorage 所以检索用户名应该相当有效。
只需在浏览器的网络选项卡中仔细检查,确认 Amplify 不会在您每次调用 Auth.currentAuthenticatedUser
时发出任何网络请求。
从外观上看,Amplify 似乎是根据您的用例开发的,因为它几乎可以像 "global store" 用户身份验证信息一样使用。 Amplify 不仅仅是 API 的包装器,还为您做了一些缓存和逻辑。所以直接调用它可能更好,而不是将用户数据存储在 Redux 中或在页面之间传递。将用户的数据存储在 Redux 中或在页面之间传递只会创建重复的逻辑。
我的问题是概念性的,所以我不会在这里写任何代码。
我正在使用 Reactjs 构建我的网站,并且所有身份验证过程都在正常工作。 为了方便起见,我将考虑网站中的 03 页: - 第 1 页:使用 Auth.signIn 方法的用户登录页面。当用户通过身份验证时,它会自动转到第 2 页。
第2页:在这个页面中,必须呈现大量来自用户的信息。为此,有一个 API ,其中输入参数是用户名。要获取用户名参数,在呈现页面时会调用 Auth.authenticatedUser 方法。之后调用API从数据库中获取用户信息。假设第 2 页中只有一个按钮可以访问第 3 页。
第3页:这个页面有更多关于用户的信息,需要从数据库中读取。获取这些信息的API又有输入参数为"username"。要获取用户名参数,我有 2 个选项: 选项 1:再次使用 Auth.authenticatedUser 并获取用户名 选项 2:将 "username" 从第 2 页传递到第 3 页作为道具。
在我的例子中,使用选项 1 要容易得多,因为我的网站有很多页面,并且将道具从一个页面传递到另一个页面是一项艰巨的任务 - 我最终将不得不使用 redux。
我的问题是: - 在所有页面中使用Auth.authenticatedUser获取用户名信息是否有问题?这样做有任何缺点(即渲染页面的速度等...)
来自 source it looks like Amplify caches the user both in memory and in localStorage 所以检索用户名应该相当有效。
只需在浏览器的网络选项卡中仔细检查,确认 Amplify 不会在您每次调用 Auth.currentAuthenticatedUser
时发出任何网络请求。
从外观上看,Amplify 似乎是根据您的用例开发的,因为它几乎可以像 "global store" 用户身份验证信息一样使用。 Amplify 不仅仅是 API 的包装器,还为您做了一些缓存和逻辑。所以直接调用它可能更好,而不是将用户数据存储在 Redux 中或在页面之间传递。将用户的数据存储在 Redux 中或在页面之间传递只会创建重复的逻辑。