2017-10-12 38 views
1

我有一个包含Web应用程序,移动应用程序(Ionic 3)和REST API模块(在HTTPS上)的项目。 我主要关心的是在它们之间实现安全的登录和通信。 波纹管我详细说明了我选择的解决方案,我想问问它是否正确和安全。如何保护Ionic 3应用程序和自定义php REST API之间的通信

遵循的步骤:

    在应用中的登录
  1. 服务器返回一个智威汤逊 - 艾策斯令牌

  2. 当我打电话从API(除了登录)我会发送以下参数的任何功能:

    • 内部报头:JWT AccesToken(存储在本地存储)
    • 体内:任何其他PARAM necess ary来调用API的函数
  3. 里面的每个函数都来自REST API,在执行之前,我检查Access令牌是否有效。

令牌验证:

一)如果访问令牌是有效的我继续执行功能,并返回一个值到了移动应用

B)如果访问令牌不是有效的手段我有2个可能的错误来源:

  • B1)的访问令牌的完整性是一个妥协 - >返回的答案将用户重定向到登录(这样一来他没有再对应用程序的访问)
  • b2)访问令牌过期 - >我创建一个新的访问令牌具有相同的有效负载,但具有新的有效性。同时,我创建新的Access令牌,同时我还检查了数据库中的IdClient(IdClient是从访问令牌载荷生成的)(如果处于活动状态,如果具有访问API的相同权限...)。在此之后,我将这个新的JWT访问令牌发送到移动应用程序以供使用和存储。

这样,我相信我没有使用刷新标记,即使访问令牌我用寿命是有限的时期

这是正确的和安全的还是我失去了一些东西?

谢谢!

回答

0

是的,如果您实施上述token based authentication pattern (JWT),我看不到任何有关您的应用安全的问题。您可以在我的Ionic 3应用程序中使用以下链接看到相同的模式。

你可以看到that implementation here

但在该应用程序中,我有一个后端API开发人员。所以我已经使用前端应用程序来使用该API模式。但我想也有refresh token pattern。你能告诉我你为什么试图避免在你的应用程序?

+0

我选择不使用RefreshToken因为我不”知道如何reciving的艾策斯令牌到期错误 后召回功能刷新令牌我应该做的: A)调用SUM1:发送内部FUNCTION1变量和艾策斯令牌 B) :我收到访问令牌过期的错误 C)FUNCTION1内部:我发送刷新令牌 D)在FUNCTION1内部:我收回新的访问令牌 E)在FUNCTION1内部:我从新的访问的REST API中调用函数SUM1令牌 所有这些步骤必须在FUNCTION1内完成。但我不知道如何。 也许在angular2上使用RJx,“重试/重试时......”但我只能读到它们 – Eventful

相关问题