- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
<分区>
我似乎遇到了一个我还没有遇到的问题。我在后端有一个 API 路由,当被调用时,将通过 res.redirect('/signin')
将浏览器 URL 重定向到 /signin
(或者我认为) .使用 React Router,此 URL 将触发“重新登录”组件的呈现。这本质上是处理 JWT token 的过期,并处理在用户 token 过期时将用户发送回登录页面。
主要的 Dashboard
组件从后端接收一个 JWT token ,该 token 是在用户登录时为用户生成的。该 JWT token 用于前端访问 protected API 路由。 JWT token 存储在 localStorage
中,并带有过期时间。一旦 token 过期,它就会显示为未定义。当 Dashboard
组件重新安装时,它始终会检查 localStorage 以确保它具有有效的 JWT token 并且不是未定义的。
当 JWT token 过期并显示为 undefined
时,该组件调用后端路由处理将用户重定向回允许他们重新登录的 URL生成的 JWT token 。
最后,这里是一些代码(与此无关的代码已为简洁起见进行了编辑)。
前端调用后端 logout
路由: 我在 componentDidUpdate() 中进行此调用,因为每次我的 Redux 存储都是更新后,这会重新呈现组件,再次检查有效 token ,并且由于它不会在初始组件安装时触发,所以它会为组件提供时间来存储 token 。
componentDidUpdate() {
const currentkey = localStorage.getItem('userToken');
if(currentkey === 'undefined'){
fetch('/account/logout', {
method: 'GET'
})
.catch(err => {
console.log(err)
})
}
}
这是后端 logout
路由: 我尝试使用 res.redirect('/signin' )
在这里无济于事。它在调用时不会更改 URL。它不会抛出错误或任何东西。它只是表面上被忽略了。当我向它添加 console.log()
时,我可以看到前端 fetch()
肯定会调用它,并触发 console.log( )
,所以我至少知道它是从前端调用的。 postman 也确认路线可达。
app.get('/account/logout', (req, res) => {
res.redirect('/signin');
console.log('logout route called');
});
让我感到困惑的是,我的整个注册/登录系统在那些特定的路由中使用了 res.redirect()
,并且一切正常。我从来没有遇到过 URL 不变的问题。
我应该以这种方式重定向用户吗?我什至可以使用这样的 fetch()
请求吗?正如我所提到的,我正在使用 React Router,所以我还想问一下是否有一种方法可以使用它来重定向浏览器 URL 而不是在后端处理它。
提前感谢您的阅读和任何见解!
我正在使用 express并试图通过管道传输 req到远程服务器进行处理,然后通过 res 将结果通过管道传回客户端.它运行良好,但有时我认为 res由 connect-timeout 的操作结束,导
我正在尝试使用 fetch 进行简单的发布请求: const headers = new Headers({ Accept: 'application/json', 'Content-Type
我偶然发现了一个代码示例 here .引起我注意的行(跳过所有其他行): { ... void *res; ... s = pthread_join(tinfo[tnum].thread_id
我有一个 NodeJS 代码,使用请求模块向服务器发出请求。如果我使用“http.request”,代码工作正常,但在 res.on() 上显示错误使用请求来调用电话。以下是显示错误的部分: cons
我想知道这两种不同的方法在 expressjs 中是否相同? res.statusCode = 500; return res.json({ status: "error" }); 或者 r
我正在尝试在 Node.js 中制作简单的 ftp 客户端。一切正常,但我不知道如何在我的 Jade 模板中编写“singleFile.name”。 app.post('/ftp/login', fu
在frameworks/base下有这个xml文件。 /frameworks/base/core/res/res/layout/simple_dropdown_item_2line.xml 如何在我自
我是 odoo v8 的新手,我无法理解 res_partner 和 res_users 表之间的关系以及与 hr_employee 表之间的关系,它们都相关吗? 最佳答案 res.partner之间
我正在开发一个用于用户登录的小部件。基本上,当他们输入有效的帐户详细信息时,我希望它呈现相同的页面(使用 Handlebars )并声明“帐户已成功验证”之类的内容,然后 3 秒后重定向用户。 这是我
我有这种形式的数据 [ { device_id: '12335', timestamp: '2018-05-14T08:31:23.000Z', temperatur: 21,
我是 android 开发的新手,您可能会从我的问题中看出这一点。我发现我有一个 res/menu 文件夹和一个 res/layout 文件夹。它们都包含每个 Activity 的 XML 文件。但是
当我尝试按照指南中的说明在 res/menu 中创建新的菜单资源文件时,该文件夹不存在。 res/xml 也不是。有人可以告诉我如何解决这个问题吗?我尝试创建文件夹,但它不允许我这样做 最佳答案 如果
调用有什么区别: res.flushBuffer(); 对比 res.getOutputStream().flush(); 这些方法是否刷新相同的缓冲区? 如果是这样,你能告诉我这个缓冲区是如何由
为什么以下不起作用? res.send({ successMessage: 'Task saved successfully.' }); res.redirect('/'); 我基本上需要 A
我正在尝试确定是否可以同时调用 res.send(data) 和 res.render('reports')。 为了进一步详细解释,当我路由到“/reports”时,首先在我的服务器端我对返回 jso
app.get('/p/:tagId', function(req, res) { res.send("tagId is set to " + req.param("tagId")); }); 上
我在使用express.js 时遇到一些问题。我想在第一次请求时渲染我的模板,然后从路由中获取一些数据。我的路由如下所示: app.use(function (req, res, next) { r
我想根据屏幕尺寸加载 dimens.xml,但无论屏幕尺寸如何都使用相同的颜色。 我有以下目录结构 res res/values colors.xml res/values-small d
我有一张图片,rectangle.png。它的尺寸是 75x197。它位于 res/drawable 和 res/drawable-xhdpi。它在像这样的网格布局中显示了很多次(截图来自 Nexus
我很好奇返回响应和仅创建响应的区别。 我见过大量使用 return res.status(xxx).json(x) 的代码示例和res.status(xxx).json(x) . 谁能详细解释一下两者
我是一名优秀的程序员,十分优秀!