如何使用feathersjs-authentication将JWT令牌发送到客户端?

我在我的feathersjs REST-API应用程序中使用了本地身份validation ,但是在用户通过身份validation之后,而不是向我发送身份validation令牌 ,羽毛会发送以下HTML作为对身份validation请求的响应:

<body> <img class="logo" src="alongbase64string" alt="Feathers Logo"> <main> <h1 class="center-text">Success</h1> <h3 class="center-text">You are now logged in. We've stored your JWT in a cookie with the name <span class="italic">"feathers-jwt"</span> for you. It is: </h3> <pre id="token"></pre> </main> <script type="text/javascript"> function getCookie(name) { var value = "; " + document.cookie; var parts = value.split("; " + name + "="); if (parts.length == 2) return parts.pop().split(";").shift(); } var token = getCookie('feathers-jwt'); var el = document.getElementById('token'); el.innerHTML = token; </script> 

打印以下页面:

在这里输入图像说明

如果我从网页发送请求,我认为这将工作得很好,但在我的情况下,我需要获取令牌,因为客户端是一个移动应用程序 ,而不是一个Web浏览器,所以cookies不适合我。

是否有可能让羽毛在响应中发送令牌? 就像是:

 { token: 'açldkjfaçldkfjçasdkfjdçakfjd' } 

这样我可以将令牌存储在移动应用程序中,并使用它来validation对我的feathersjs API服务器的更多请求

现在,我不会在这里再放置任何代码,因为应用程序完全是由feathersjs提供的控制台命令完成的,就像feathers generate但是如果有人需要更多地了解代码,请让我知道,我将编辑问题添加更多的细节。

您必须确保将请求中的Accept标头设置为application/json否则将采用HTML并发送您所看到的页面。

使用本地中间件而不是问题中引用的套接字scheme。

将login数据发送到/auth/local将会产生错误

 { "token": {JWT}, "data": { "email": "admin@feathersjs.com", "id": 0 } } 

您的客户端可以从该JSON响应中提取值并适当地处理它们。

除此之外,大多数情况下都需要修改库存Feathers演示。