问题描述
在阅读了以下资源之后,我可以在Next.js上登录和注销用户:
但是我无法找到是否可以使用auth0 / nextjs-auth0库删除用户。
我还研究了模块的处理程序here。
我是否认为无法使用@ auth0 / nextjs-auth0库删除用户?
如果是,删除用户的首选方式是什么?我想允许用户单击浏览器中的按钮以从Auth0中删除自己。
目前,我正在考虑使用node-auth0库来遵循以下solution:
management.users.delete({ id: USER_ID },function (err) {
if (err) {
// Handle error.
}
// User deleted.
});
但是它需要一个节点后端,我想避免这种情况。即使这样,这是最好的解决方案还是有更好的解决方案? Auth0生态系统非常庞大。
编辑2020年10月27日:将尝试在Next.js的“无服务器”功能中使用node-auth0库,以允许用户在周末删除其帐户。 Next的runtime configuration隐藏了秘密。如果这不是最好的方法,请告诉我。谢谢。
解决方法
我相信您的意思是通过“删除用户”来注销用户。因为如果要从数据库中删除用户,则必须拥有处理数据库连接的节点服务器。如果要注销用户,请在“pages/api/v1”中创建一个 logout.js。在 next.js 中,serverless 函数或 api 函数写在“pages/api”中。
import auth0 from "/utils/auth0";
// auth0 file is where you set the configuration for the auth0.
export default async function logout(req,res) {
try {
await auth0.handleLogout(req,res);
} catch (error) {
console.error(error);
res.status(error.status || 400).end(error.message);
}
}