使用OAuth 2.0身份验证代码授予以编程方式对用户进行身份验证的最佳方法是什么?
想知道是否有办法按照规范https://tools.ietf.org/html/rfc6749#section-4.1的说明组合步骤A和B,即将用户ID和密码作为授权呼叫的一部分传递?就像是, ?/授权RESPONSE_TYPE =代码&安培; CLIENT_ID = s6BhdRkqt3&安培;状态= XYZ &安培; REDIRECT_URI = HTTPS%3A%2F%2Fclient%2Eexample%2Ecom%2Fcb&安培; user_id=john.doe@mail&密码= XXXX
我认为一种方法是使用用户ID和密码提交()授权服务器返回的表单。采用这种方式会产生对表单的依赖性以及对它的任何更改,因为它不是公共API。
答案 0 :(得分:0)
授权代码授权旨在与完整浏览器一起使用,即不应用于以编程方式验证用户。事实上,以编程方式使用它会破坏OAuth 2.0的目的,即不会将用户的凭据泄露给客户端。
客户端凭据和资源所有者密码凭据等授权已设计为与非浏览器客户端一起使用。
或者,您可以使用授权代码授权在浏览器中为您的客户端创建access_token和refresh_token,然后将令牌传递给您的非浏览器客户端,以便它可以自己使用refresh_token来获取新的访问令牌。旧的到期。