【发布时间】:2020-09-01 10:53:38
【问题描述】:
我正在使用 AWS Amplify 和 React 构建我的第一个应用程序,并且我正在使用 withAuthenticator 强制用户登录。当我点击退出按钮时,它会重定向回登录页面,但如果我刷新页面,它会重新登录进入并再次显示我的应用程序,显然,这没有用,因为我需要它来将用户完全退出我的应用程序并从浏览器中删除他们的所有数据。我究竟做错了什么?我什至制作了一个按钮来触发 Auth.signOut() 但我仍然遇到同样的问题,即我无法从我的应用程序中注销。
我什至在这里使用了全局登录,但是当我刷新页面时它仍在重新登录。 https://docs.amplify.aws/lib/auth/emailpassword/q/platform/js#sign-out
我的代码:
import React from 'react';
import logo from './SE_logo.jpg';
import './App.css';
import Amplify, { API, Auth } from 'aws-amplify';
import {withAuthenticator} from 'aws-amplify-react';
import '@aws-amplify/ui/dist/style.css';
async function onSignOutClick() {
//await Auth.signOut()
// .then(data => console.log(data))
// .catch(err => console.log(err));
console.log(Auth.signOut());
}
function App() {
return (
<div className="App">
<header className="App-header">
<img src={logo} className="App-logo" alt="logo" />
<button onClick={onSignOutClick}>Log Out</button>
</header>
</div>
);
}
export default withAuthenticator(App, true);
【问题讨论】:
-
您是否使用某种 localStorage 或 cookie 来保存用户的
authenticated状态? -
我不确定我才刚刚开始使用 Amplify 和身份验证,所以我将所有内容都留给了 Amplify 框架,所以大概它会将访问令牌存储在某处,因此当我刷新它找到的应用程序时他们知道他们仍然有效并直接进入应用程序而不是再次提示登录。
标签: javascript reactjs aws-amplify