我是新来的休息和oauth。我获得开发人员访问我律师事务所的计费软件的权限。我收到了一个带有用户名和密码的“开发者帐户”,我注册了我的“应用程序”,此时我所拥有的所有信息的总和如下:
“文档”说我需要在请求正文中传递以下URL编码的行,并且所有参数都是必需的:
CLIENT_ID = {CLIENT_ID}&安培; client_secret = {client_secret}&安培; grant_type = {grant_type}&安培;代码= {代码}&安培; REDIRECT_URI = {REDIRECT_URI}
我在弄清楚什么是什么时遇到了一些麻烦。我相信 client_id 和 client_secret 是我在注册应用时提供的 api密钥和密钥。这听起来不错吗?
我不知道要使用哪种授权类型。
我不知道“代码”是什么或在哪里获得它。
开发人员似乎没有给我所需的所有信息,但我可能错了。
答案 0 :(得分:0)
不,它看起来不够信息!是API密钥和秘密声音,如client_id
和client_secret
。
通常,授权类型取决于您正在开发的应用程序类型。最常用的是:
Authorisation Code
Grant Implicit
Grant Authorisation Code
使用PKCE授予。Client Credentials
格兰特。根据您提供的信息,我不确定最适合您,但这里是使用几种授权类型获取令牌的常用协议示例:
授权代码授权:
所以你要打电话给律师事务所的授权服务器:
1) GET /authorize?response_type=code&client_id=yourclientid
&redirect_uri=https%3A%2F%2Fyourappserver%2Ecom%2Fcallback HTTP/1.1
您将获得一个发送回重定向端点的代码,然后您将该代码发送到auth服务器的/ 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)返回一个访问令牌
如果您的应用程序要与律师事务所的计费软件交谈而不需要用户/上下文,那么您将使用客户端凭据授权。
客户资格补助金。
该协议的一个例子是致电律师事务所的Auth服务器:
POST /token HTTP/1.1
Host: server.yourlawfirm.com
Authorization: Basic czZCaGRSa3F0MzpnWDFmQmF0M2JW
Content-Type: application/x-www-form-urlencoded
grant_type=client_credentials
这会返回一个访问令牌。
客户端ID和密码再次包含在基本的auth标头中,但可能是您可以在我之前显示的请求正文中提供它们。
e.g。
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。