从getServerSideProps调用getSession时如何调用



我只想向管理员显示安全数据。在NextAuth中->回调->会话我正在检查数据库用户是否具有管理员权限,并添加isAdmin标志。我不知道这是否是最安全的方式,任何人都可以通过伪造请求强制getSession给我错误的数据。

export async function getServerSideProps(context) {
const session = await getSession(context);
if(session && session.isAdmin) {
..

有很多方法可以做到这一点。

当您在登录后从数据库中获取用户时,您可以有一个名为roles或role的字段。

例如,当用户转到保护页面时,您可以进行服务器端验证。

export async function getServerSideProps({ req }: any) {
const session = await getSession({ req });
const user = session?.user;
if(user.role!=="admin")
{
custom logic or return the user to another page etc
}
}

相关内容

  • 没有找到相关文章