【发布时间】:2018-04-23 10:52:37
【问题描述】:
我正在尝试以 NodeJS 作为后端的方式构建应用程序,所有业务逻辑都公开 JSON REST 服务以供 angular 4 应用程序使用,而 Angular 4 应用程序只不过是一个愚蠢的客户端。到目前为止一切顺利,但是我很难弄清楚会话管理。
我发现基于令牌的身份验证是一种可行的方法,因为您可能有一天会为移动应用程序提供服务,但是我有一个问题:如果我在服务器端使用 JSONWebToken 策略并将令牌到期时间设置为半小时,那么我的客户需要在半小时后重新进行身份验证,这似乎不太合适,因为这样可能会迫使用户再次登录已经在客户端应用程序上工作的用户,这不是任何 Web 应用程序的工作方式.如果我的令牌在服务器上过期但它违反了愚蠢客户端的原则,我是否还需要在 Angular 级别维护会话管理并自动登录,或者我应该完全放弃它在 NodeJS 上实现会话它自己?另一件事是,如果我实现 WebTokenStrategy,我发现对于来自客户端的每个请求,如果我在 NodeJS 上进行会话管理,我将访问数据库以验证我可以在会话中缓存的用户。
我很难弄清楚的最后一件事是,我可以在 NodeJS 上保护我的资源,但是我还需要根据我的客户端应用程序中的用户权限来提供我的路由和页面,我是否也应该将此信息存储在NodeJS 数据库并由同一个 API 服务器提供服务,但我认为这再次违反了单一责任原则,或者应该有另一个数据库用于此客户端站点路由和用户管理。
有人可以提出一个好的方法吗?如果可能的话,可以举个例子吗?
谢谢。
【问题讨论】:
标签: node.js angular session express json-web-token