在nodejs中使用rest auth api
Posted
技术标签:
【中文标题】在nodejs中使用rest auth api【英文标题】:consume rest auth api in nodejs 【发布时间】:2020-01-09 08:32:45 【问题描述】:我有一个在 www.website.com/users/login 运行的 api。我想在我的 nodejs 前端使用 api。我想将从 /login 收到的令牌传递给所有其他路由。在这里,我试图将登录后收到的令牌传递到注销路由。
Api注销代码-
router.post('/users/logout',auth, async(req,res)=>
try
req.user.tokens=req.user.tokens.filter((token)=>
return token.token !==req.token
)
await req.user.save()
res.send()
catch(e)
res.status(500).send()
)
客户端代码
app.post('/users/login', function (req, res)
var email = req.body.email;
var password = req.body.password;
var form =
email,
password
request.post(
url: "https://website.com/users/login",
body: form,
json: true
, function (error, response, body)
console.log('error:', error)
console.log('body:', body.errmsg);
console.log(body);
if (body.user)
let auth = body.token
console.log(auth) //I want to pass this auth to /logout
else
res.render('login',
email,
password
)
)
注销路由。我想将令牌传递给注销路由,以便用户可以注销?
app.post('/users/logout', function (req, res, next)
request.post(
url: "https://website.com/users/logout",
headers:
'Authorization': auth
,
, function (error, response, body)
console.log('error:', error)
console.log('response:', response);
console.log('body:',body);
)
)
请帮助我了解如何使用从登录收到的令牌到其他路由。我让邮递员从 auth 继承,但我很难使用这个 api。
【问题讨论】:
【参考方案1】:首先,为什么您需要一个令牌才能退出?您没有在 auth 中间件上分享您的完整代码。您要做的是将令牌存储在本地存储中。例如这是一个简单的客户端登录
const login = (username, password) =>
//http call
axios.post('https://www.websites.com', username, password)
.then(response=>
//when the request is successful set the token to local storage
const token = response.data;
//this will set your token in local storage
localstorage.setItem('token', token)'
so you can decide to append your token to the routes
)
如果想从 nodejs 前端注销,您可以为令牌设置到期日期,如果您想要更严格的注销,请查看 it has already been answered here
【讨论】:
以上是关于在nodejs中使用rest auth api的主要内容,如果未能解决你的问题,请参考以下文章
Auth0 NodeJS JWT 身份验证在移动应用程序的 API 中
使用 VS Code 中的 Auth0 为 REST API 调用调试 VUE 应用程序