为什么 aws-cognito-next getServerSideAuth 返回 null?



我正在使用 npm 模块aws-cognito-next为我的一个应用程序实现身份验证。在那里,函数getServerSideAuth(context.req);似乎没有按预期工作:

export async function getServerSideProps(context) {
// getServerSideAuth will parse the cookie
const initialAuth = getServerSideAuth(context.req);
return { props: { initialAuth } };
}

然后在Home(/pages/home.js(的同一页面中,我使用这个返回的initialAuth如下:

const Register = ( {initialAuth} ) => {
console.log("initialAuth is: " + util.inspect(initialAuth))
const auth = useAuth(initialAuth);
...
//other logic
...
}

但我得到的是:initialAuth is: null.那么为什么没有从服务器端返回初始身份验证呢?我在这里做错了什么?

getServerSideAuth检查用户是否已登录并返回可在useAuth中使用的令牌。您可以检查null并添加逻辑以将用户发送到登录/注销页面。

const Register = ( {initialAuth} ) => {
const auth = useAuth(initialAuth);
const { login, logout } = useAuthFunctions();
return (
<React.Fragment>
{auth ? (
<button type="button" onClick={() => logout()}>
sign out
</button>
) : (
<React.Fragment>
<button type="button" onClick={() => login()}>
sign in
</button>
</React.Fragment>
)}
</React.Fragment>
);
}

有关useAUth的更多信息,请参阅此处。

最新更新