Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript客户端的OAUth 2资源所有者密码授予类型_Oauth_Oauth 2.0 - Fatal编程技术网

Javascript客户端的OAUth 2资源所有者密码授予类型

Javascript客户端的OAUth 2资源所有者密码授予类型,oauth,oauth-2.0,Oauth,Oauth 2.0,我正在开发一个restful web服务和一个基于角度的应用程序来访问我的web服务。由于两者都是由我开发的,所以我决定实现OAuth 2 Pasword grant类型(我们正在实现自己的OAuth服务器)。我选择正确的补助金类型正确吗 现在我对使用刷新令牌感到困惑,因为它不能安全地存储在浏览器中,如果它被盗,它可以用来生成黑客想要的任意多的访问令牌 出于同样的原因,我不能使用长寿命的访问令牌,它违背了访问令牌的目的 如果我使用短期访问令牌(比如60分钟)而不使用刷新令牌,那么我可能需要要求用

我正在开发一个restful web服务和一个基于角度的应用程序来访问我的web服务。由于两者都是由我开发的,所以我决定实现OAuth 2 Pasword grant类型(我们正在实现自己的OAuth服务器)。我选择正确的补助金类型正确吗

现在我对使用刷新令牌感到困惑,因为它不能安全地存储在浏览器中,如果它被盗,它可以用来生成黑客想要的任意多的访问令牌

出于同样的原因,我不能使用长寿命的访问令牌,它违背了访问令牌的目的

如果我使用短期访问令牌(比如60分钟)而不使用刷新令牌,那么我可能需要要求用户每1小时登录一次,这会让用户感到恼火

有没有更好的方法来处理这个问题,或者我在流程中遗漏了什么


我可能也会使用隐性补助,但我相信问题是一样的

由于您控制所有3个实体(客户端、资源服务器和授权服务器),因此可以使用资源所有者密码凭据授予类型,尽管使用隐式授予类型将为您提供一种升级身份验证方法的方法适用于您的用户,而无需修改客户端以处理新的身份验证类型

您可以返回刷新令牌并将其存储在会话存储(window.sessionStorage)中


在这里可以找到更多关于令牌和存储替代品的好东西:

编写了3个实体并没有改变客户端可以公开秘密的事实。看这个,这是另一个问题;出于文章中提到的原因,Javascript客户端无论如何都是公共客户端。