我正在使用javascript构建一个Web应用程序,它可以脱机工作,使用本地存储,并与同一域上的API通信。我希望用户能够执行初始身份验证(用户名和密码),然后每隔10天左右定期进行身份验证,我想使用OAuth来执行此操作。我想使用双方式身份验证,因为我不希望用户在身份验证后必须确认访问权限。但是,我知道一个秘密不能安全地存储在javascript中,所以这可能吗?如果是的话,我该如何实现呢?
答案 0 :(得分:1)
是的,您可以使用Resource Owner Password Credentials grant type来实现此目的。这是使用client_id,grant_type,用户名和密码的OAuth授权服务器的简单HTTP POST。回来的是access_token和一些关于它的元数据(类型,到期,刷新令牌)。刷新令牌可用于为“10天”场景请求新的访问令牌,访问令牌可能更适合几分钟(会话超时)。
对于此授权类型,客户端身份验证(使用client_secret)是可选的。