我对如何使用oAuth2和密码授予方案保护自己的应用程序中的身份验证感到困惑。
由于我的应用程序全部是Javascript,因此我无法安全地存储客户端密钥或客户端ID。根据规范,我们不需要传递任何一种授予类型,但是Laravel Passport需要它,因此我正在考虑构建一个将两个值都注入到请求中的代理。
我可以使用隐式授予类型,但是这会将我的用户重定向到网站,并且会破坏用户体验。
根据oauth.com:
当应用程序交换用户的密码时使用密码授予 访问令牌的用户名和密码。这就是事实 OAuth最初是为了预防而创建的,所以您永远都不要 允许第三方应用使用此赠款。
但是我们如何防止第三方应用程序使用相同的身份验证流程,特别是因为此授予类型不使用重定向网址?