在我的申请中,我有很多公司帐户。 我正在使用django-oauth-toolkit,并且我将根据特定公司的请求添加对我的API的访问权限。
我有一些端点,例如:
GET /api/users/
-返回所有公司用户
GET /api/documents/
-返回给定公司用户拥有的所有文档
我想知道应该使用哪种授权授予类型:
客户端类型:Confidential
授权授予类型选项:
任何人都可以告诉我哪种类型最适合我,为什么?
答案 0 :(得分:2)
您应该使用resource owner password-based
授权:
资源所有者密码凭据授予类型适用于资源所有者与客户端具有信任关系的情况,例如设备操作系统或高特权应用程序。
流量:
客户端将要求用户提供其授权凭据(通常是用户名和密码)。
然后,客户端将带有以下主体参数的POST请求发送到授权服务器:
grant_type
,其密码为client_id
和客户的ID client_secret
和客户的秘密scope
以及以空格分隔的请求范围权限列表。username
和用户名password
和用户密码授权服务器将以JSON
对象作为响应,该对象包含以下属性:
token_type
,其值为Bearer expires_in
,其中一个整数代表访问令牌的TTL access_token
使用授权服务器的私钥签名的JWT refresh_token
一种加密的有效负载,可用于在访问令牌到期时刷新访问令牌。