由于Auth,应用程序和服务器之间的紧密耦合

时间:2019-01-14 12:27:24

标签: android ios oauth oauth-2.0 openid-connect

我必须设计一个本机移动应用程序,该应用程序使用Access token的到期时间为2分钟。该应用程序维护一个计时器,并每隔2分钟在后台请求新的access token。 我觉得这种设计在服务器和应用程序之间引入了紧密的联系,以保持2分钟的时间。在理想的世界中,维持access token的寿命不应该成为应用程序的责任。我在设计中缺少什么吗? 使用OAuth时,有没有教程指定App与服务器之间的通信?

1 个答案:

答案 0 :(得分:1)

您不应在应用程序中对访问令牌超时进行硬编码。您可以从 @GetMapping(value={"/dynamic","/dynamic/{cognome}","/dynamic/{cognome}/{nome}"}) public String salutoDinamico( @PathVariable(value="nome", required=false)String nome, @PathVariable(value="cognome", required=false)String cognome ) { if(nom == null){ nom = "default value - nome"; } if(cognome == null){ cognome= "default value - cognome"; } return "Ciao Mondo da "+cognome+" "+" "+nome; } 端点的expiresIn响应属性中获得它。有关更多信息,请参见OAuth2 RFC

正如Paulw11所述,不必主动刷新访问令牌。您可以设计HTTP客户端的方式是将令牌(访问令牌和刷新令牌)和访问令牌到期时间都作为参数,并在使用前刷新访问令牌(如果需要)。

我不确定“应用程序和服务器之间的通信”是什么意思,但是有一个关于OAuth2 for native apps的RFC。