0

我们正在设计一个可以通过移动应用程序和网络应用程序访问的应用程序。

移动应用程序将使用公开的 REST API(我们使用 CXF)获取数据。对于 web 应用程序,我们使用 Spring MVC,它也会从 REST API 获取数据。在这两种情况下,我们都希望显示经过身份验证的用户的数据。对于身份验证,我们使用 JWT 令牌。

我的问题是我们提供了两种通过 REST 或 Web 访问数据的方式,并且都需要身份验证。我们如何在两个组件中重用我们的安全代码。

Web 组件的 URL http://localhost:8080/web/resource/

REST API 组件的 URL http://localhost:8080/rest/resource/

身份验证 URL http://localhost:8080/auth/

最初,我们考虑为每个组件设置两个不同的过滤器,即 web 和 REST。我们将从它们中的每一个中对身份验证 API 进行 REST 调用以验证令牌。这种方法的一个疑问是,如果用户通过网络,那么通过这种设计,我们将验证令牌两次。因此,最好从 REST API 调用身份验证 API,避免在 Web 中使用它,因为 REST API 总是会进行身份验证调用。

还有其他更好的方法可以做到这一点吗?

4

0 回答 0