不,这似乎没有足够的信息!是的,API 密钥和秘密听起来像 client_id 和 client_secret。
通常,授权类型取决于您正在开发的应用程序类型。最常用的是:
- Web 应用与用户 =
Authorisation CodeGrant
- Javascript 浏览器应用程序 =
ImplicitGrant
- 本机/移动应用程序 =
Authorisation Code 授予 PKCE。
- 无需用户上下文的 Web 应用程序/API =
Client Credentials
格兰特。
根据您提供的信息,我不确定最适合您,但这里是使用几种授权类型获取令牌的常用协议示例:
授权码授予:
因此,您将调用律师事务所的授权服务器 2 次:
1) GET /authorize?response_type=code&client_id=yourclientid
&redirect_uri=https%3A%2F%2Fyourappserver%2Ecom%2Fcallback HTTP/1.1
您将收到一个代码发送回您的重定向端点,然后您将其发送到身份验证服务器的 /token 端点。
2) POST /token HTTP/1.1
Host: server.yourlawfirm.com
Authorization: Basic czZCaGRSa3F0MzpnWDFmQmF0M2JW
Content-Type: application/x-www-form-urlencoded
grant_type=authorization_code&code=SplxlOBeZQQYbYS6WxSbIA
&redirect_uri=https%3A%2F%2Fyourappserver%2Ecom%2Fcallback
请注意,在此示例中,基本身份验证代码包含客户端 ID 和密码,但它们通常在请求正文中发送,例如
2) POST /token HTTP/1.1
Host: server.yourlawfirm.com
Content-Type: application/x-www-form-urlencoded
grant_type=authorization_code&code=SplxlOBeZQQYbYS6WxSbIA
&redirect_uri=https%3A%2F%2Fyourappserver%2Ecom%2Fcallback
&client_id=yourclientid&client_secret=yoursecret
然后授权服务器会从第 2 步返回一个访问令牌
如果您的应用程序要在不需要用户/上下文的情况下与律师事务所的计费软件对话,那么您将使用客户端凭据授权。
客户凭证授予。
此协议的一个示例是调用律师事务所的身份验证服务器:
POST /token HTTP/1.1
Host: server.yourlawfirm.com
Authorization: Basic czZCaGRSa3F0MzpnWDFmQmF0M2JW
Content-Type: application/x-www-form-urlencoded
grant_type=client_credentials
这将返回一个访问令牌。
再一次,客户端 ID 和密码包含在基本身份验证标头中,但您可以像我之前展示的那样在请求正文中提供它们。
例如
POST /token HTTP/1.1
Host: server.yourlawfirm.com
Content-Type: application/x-www-form-urlencoded
grant_type=client_credentials&client_id=yourclientid&client_secret=yoursecret
此信息基于OAuth2.0 specification。