我正在尝试将具有 Auth0 身份验证的 Next.js 应用程序移动到新的应用程序路由器。我了解服务器组件无法写入 cookie 的限制,但我收到一条令人困惑的消息。
我的理解是,如果我需要获取服务器组件上的用户信息,我需要使用'getSession'from 的函数'@auth0/nextjs-auth0',该函数不适用于客户端组件。
但是,每次我调用它时,服务器控制台都会记录以下消息(未标记为错误或警告):"nextjs-auth0 is attempting to set cookies from a server component"。
我不想设置任何cookie,只是获取用户信息。谁能帮助我理解为什么这个调用使'getSession'组件设置cookie?另外,如果我并没有真正尝试设置 cookie,忽略此消息是否安全?
提前致谢。
添加代码:完整的解决方案有点复杂,但这段代码说明了我的问题。这是一个简单的 SSR 组件,它从服务器会话中获取用户名(按照 Auth0 的格式指定):
import { getSession } from '@auth0/nextjs-auth0';
export default async function Profile() {
const session = await getSession();
return (
<div>
HELLO {session?.user?.name}
</div>
)
}
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,每次getSession调用服务器控制台都会发出消息"nextjs-auth0 is attempting to set cookies from a server component"。
我没有明确尝试设置cookie,只是获取用户的信息。我想了解为什么会发生这种情况以及忽略该消息会产生什么影响。
再次提前感谢您的帮助。
我开始评估material-ui作为项目的替代方案,我想知道更改表格字体大小的推荐方法是什么。
目前我正在使用组件的沙箱(可在https://codesandbox.io/s/9onokxxn5w 获得),但我找不到要更改的内容以放大字体大小。
我尝试通过向元素demo.js添加fontSize键来更改主题table,如下所示,但没有用:
const styles = theme => ({
root: {
width: '100%',
marginTop: theme.spacing.unit * 3,
overflowX: 'auto',
},
table: {
minWidth: 700,
fontSize: '40pt'
},
});
Run Code Online (Sandbox Code Playgroud)
在此先感谢您对解决此问题的任何帮助。