Aurelia feathers authenticate()如果api调用没有参数失败,如何使用它?

Aurelia feathers authenticate()如果api调用没有参数失败,如何使用它?,aurelia,feathersjs,Aurelia,Feathersjs,我制作了一个简单的Aurelia应用程序,它尝试进行身份验证,正常工作,除非您刷新浏览器,并且应用程序的构造函数检查我们是否已经通过身份验证,否则API调用将失败。我希望API调用中的catch返回一个通知,即用户或者尚未登录,或者用户实际上已经基于本地存储的令牌登录 从文档中: app.authenticate()尝试使用 你传递的数据如果您不提供任何选项,它将尝试 使用存储在内存或存储器中的令牌进行身份验证 引擎。它返回一个承诺 这是我用来测试这个的完整测试应用程序 以下是出现故障的构造函数

我制作了一个简单的Aurelia应用程序,它尝试进行身份验证,正常工作,除非您刷新浏览器,并且应用程序的构造函数检查我们是否已经通过身份验证,否则API调用将失败。我希望API调用中的catch返回一个通知,即用户或者尚未登录,或者用户实际上已经基于本地存储的令牌登录

从文档中:

app.authenticate()尝试使用 你传递的数据如果您不提供任何选项,它将尝试 使用存储在内存或存储器中的令牌进行身份验证 引擎。它返回一个承诺

这是我用来测试这个的完整测试应用程序

以下是出现故障的构造函数代码:

更新


嗯,一个长时间盯着屏幕的例子。它正在按预期工作。当用户未登录时,它处于捕获状态。我在《红色》中扮演主角,认为这是一个例外,而不是一个控制台。catch中的错误调用。ugh

您的异常实际上是由您的捕获逻辑打印的:

}).catch(function(error){
  console.error('Not authenticated!', error);
  parent.authenticated=false;
});

chrome调试器中的异常以
未验证开始

您可以将
authenticate()
函数放在视图的
activate()
函数中,因为
activate
处理承诺
activate(){返回这个.f.authenticate();}
我仍然得到错误。如果我登录了,它就会工作。如果我执行feathers.logout()操作,然后刷新浏览器,我会遇到我提出的异常。使用chrome中的“应用程序”选项卡查看本地存储,看看JWT是否在那里。它不在,但如果我调用feathers.logout(),这不是预期的吗?我希望api调用进入catch()中,而不是作为未捕获的异常失败。没有?你断开了吗?
}).catch(function(error){
  console.error('Not authenticated!', error);
  parent.authenticated=false;
});