angular - Angular 5-注销代码应该放在哪里?
问题描述
这更像是一个设计问题而不是编程问题。
我想在 Angular 5 中创建注销功能。注销功能将包含以下伪代码:
- 清除本地存储认证 JWT 令牌
- 重定向到登录页面
我的问题是;上面的代码应该在哪里;在组件中还是在服务中?
我相信,服务应该包含仅与后端交互的逻辑,组件应该包含表示逻辑(如果我错了,请纠正我)。
由于注销代码不是处理后端的任何逻辑,因此理想情况下它应该位于组件中。但是,如果我必须在其他地方执行相同的注销操作,调用服务并执行代码会更容易,而不是在某些不同的组件中再次编写相同的两行代码。
那么代码应该在哪里呢?
解决方案
您可以在服务中创建注销方法,例如:
logout() {
this.localStorageService.remove('currentUser');
this.localStorageService.clear();
this.subject.next(false);
}
从注销组件调用该服务方法。不要忘记在您的服务中提供注销路径。要重定向登录页面,您可以执行以下操作:
location.href="/loginUrl";
从注销方法。
推荐阅读
- python - 将项目附加到来自 xml 的 dict 列表
- jquery - 如何使用 jquery 和 while 循环动态分配 id
- javascript - 从嵌套数组中删除无子元素(叶子除外)
- wordpress - 如何删除 wordpress 页面中的上次更新日期?
- jenkins - 无法从浏览器连接到 jenkins
- java - 多对多的 JPA 标准规范
- javascript - 如何在 Google TimeLine 图表中仅在一行中设置一个栏(带有分组的行标签)?
- python - 在运行时动态加载客户端库的大多数 Pythonic/Django 方式
- javascript - 无法使用 Nest CLI 创建新项目
- scala - foldLeft :如果存在则添加到地图中,否则更新值