【问题标题】:Why do I need a client id for OAuth2 password grant flow?为什么我需要 OAuth2 密码授予流程的客户端 ID?
【发布时间】:2019-12-25 17:23:48
【问题描述】:

例子:

POST /oauth/token HTTP/1.1
Host: authorization-server.com
Content-type: application/x-www-form-urlencoded

grant_type=password
&username=exampleuser
&password=1234luggage
&client_id=xxxxxxxxxx

为什么 OAuth2 密码授权流程需要客户端 ID?为什么用户名和密码不够用?

【问题讨论】:

    标签: authentication oauth-2.0 passwords authorization clientid


    【解决方案1】:

    令牌端点将发出一个访问令牌。访问令牌表示“谁授予谁什么权限”。

    • 这里是username标识的用户。
    • 什么权限这里是scope请求参数中列出的范围(尽管您的示例不包括scope请求参数)。
    • 这里是一个客户端应用程序。

    要让授权服务器知道(即客户端应用程序),您需要包含一个client_id 请求参数。

    【讨论】:

    • 换句话说:登录页面通常在登录对话框中显示应用程序的名称,因此用户知道他允许谁访问,这个名称可以通过client_id获得.而且它只允许开发者注册的应用访问,所以它知道这个应用需要哪些权限,哪些不需要。
    猜你喜欢
    • 1970-01-01
    • 2011-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-05
    • 2016-06-17
    • 2017-03-04
    相关资源
    最近更新 更多