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