使用OAuth时,将"client_secret"存储在移动设备上是否安全?

Ara*_*ile 5 oauth laravel

我正在构建Laravel后端,以便通过移动设备对用户进行身份验证.并使用https://github.com/lucadegasperi/oauth2-server-laravel

移动用户将调用/ oauth/callback来获取访问令牌

我打算使用'密码'作为授权类型.因此,在这种情况下,用户将发送以下内容: - 用户名和密码 - 客户端ID + SECRET

我觉得在移动设备上存储密码有问题.那是好习惯吗?在为app和app进行逆向工程时,可以轻松检测到秘密.

任何人都可以在使用OAuth2时解释最佳实践

Tak*_*aki 2

OAuth 2.0 假设本机应用程序无法对客户端凭据保密。以下是 RFC 6749“ 9. 本机应用程序”的摘录。

使用授权代码授予类型的本机应用程序应该在不使用客户端凭据的情况下执行此操作,因为本机应用程序无法对客户端凭据保密

处于难以对客户端凭据保密的环境中的客户端应用程序称为公共客户端(RFC 6749,“ 2.1. 客户端类型”)。公共客户端不应使用客户端密钥发出授权和/或令牌请求。(但这是允许的。)

如果您的移动设备是智能手机,则不应在应用程序中嵌入客户端密钥。另一方面,如果您的移动设备比较特殊,并且您认为黑客实际上不可能从移动设备中的应用程序中提取客户端密钥,那么使用客户端密钥将增强安全性。