Angular 5-注销代码应该放在哪里?

时间:2018-06-12 11:23:16

标签: angular angular5

这更像是一个设计问题,而不是编程问题。

我想在Angular 5中创建Logout功能。注销功能将包含以下伪代码:

  1. 清除本地存储身份验证JWT令牌
  2. 重定向到登录页面
  3. 我的问题是;上面的代码应该在哪里;在组件或服务中?

    我相信,服务应包含仅与后端交互的逻辑,组件应包含表示逻辑(如果我错了,请纠正我)。

    由于注销代码不是处理后端的任何逻辑,理想情况下它应该位于组件中。但是,如果我必须在其他地方执行相同的注销操作,则更容易调用服务并执行代码,而不是在某个不同的组件中再次写入相同的两行。

    那么代码到底应该在哪里?

1 个答案:

答案 0 :(得分:0)

您可以在服务内部创建注销方法,例如:

logout() {
this.localStorageService.remove('currentUser');
this.localStorageService.clear();
this.subject.next(false);
}

从注销组件中调用该服务方法。不要忘记在您的服务中提供注销路径。要重定向登录页面,您可以执行以下操作:

location.href =“ / loginUrl”;

通过注销方法。