Skip to content

Commit 25aecac

Browse files
committed
Fixes and add refresh workflow
1 parent 0217c57 commit 25aecac

File tree

1 file changed

+17
-6
lines changed

1 file changed

+17
-6
lines changed

openapi.yaml

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -82,9 +82,9 @@ info:
8282
| 2. Your application then redirects the user to Linode's [login server](https://login.linode.com) with the client application's `client_id` and requested OAuth `scope`, which should appear in the URL of the login page. | 2. Your application then redirects the user to Linode's [login server](https://login.linode.com) with the client application's `client_id` and requested OAuth `scope`, which should appear in the URL of the login page. |
8383
| 3. The user logs into the login server with their username and password. | 3. The user logs into the login server with their username and password. |
8484
| 4. The login server redirects the user to the specificed redirect URL with a temporary authorization `code` (exchange code) in the URL. | 4. The login server redirects the user back to your application with an OAuth `access_token` embedded in the redirect URL's hash. This is temporary and expires in two hours. No `refresh_token` is issued. Therefore, once the `access_token` expires, a new one will need to be issued by having the user log in again. |
85-
| 5. The application issues a POST request (*see below*) to the login server with the exchange code, `client_id`, and the client application's `client_secret`. | |
85+
| 5. The application issues a POST request (*see additional details below*) to the login server with the exchange code, `client_id`, and the client application's `client_secret`. | |
8686
| 6. The login server responds to the client application with a new OAuth `access_token` and `refresh_token`. The `access_token` is set to expire in two hours. | |
87-
| 7. The `refresh_token` can be used by contacting the login server with the `client_id`, `client_secret`, `grant_type`, and `refresh_token` to get a new OAuth `access_token` and `refresh_token`. The new `access_token` is good for another two hours, and the new `refresh_token`, can be used to extend the session again by this same method. | |
87+
| 7. The `refresh_token` can be used by contacting the login server with the `client_id`, `client_secret`, `grant_type`, and `refresh_token` to get a new OAuth `access_token` and `refresh_token`. The new `access_token` is good for another two hours, and the new `refresh_token` can be used to extend the session again by this same method (*see additional details below*). | |
8888

8989
#### OAuth Private Workflow - Additional Details
9090

@@ -103,7 +103,6 @@ info:
103103

104104
| PARAMETER | DESCRIPTION |
105105
|-----------|-------------|
106-
| grant_type | The grant type you're using for renewal. Optional, only "authorization_code" is accepted for OAuth Exchanges. |
107106
| client_id | Your app's client ID. |
108107
| client_secret | Your app's client secret. |
109108
| code | The code you just received from the redirect. |
@@ -113,19 +112,31 @@ info:
113112
```json
114113
{
115114
"scope": "linodes:read_write",
116-
"access_token": "03d084436a6c91fbafd5c4b20c82e5056a2e9ce1635920c30dc8d81dc7a6665c"
115+
"access_token": "03d084436a6c91fbafd5c4b20c82e5056a2e9ce1635920c30dc8d81dc7a6665c",
116+
"refresh_token": "f2ec9712e616fdb5a2a21aa0e88cfadea7502ebc62cf5bd758dbcd65e1803bad",
117117
"token_type": "bearer",
118-
"expires_in": 7200,
118+
"expires_in": 7200
119119
}
120120
```
121121

122-
Included in the reponse is an `access_token`. With this token, you can proceed to make
122+
Included in the response is an `access_token`. With this token, you can proceed to make
123123
authenticated HTTP requests to the API by adding this header to each request:
124124

125125
```
126126
Authorization: Bearer 03d084436a6c91fbafd5c4b20c82e5056a2e9ce1635920c30dc8d81dc7a6665c
127127
```
128128

129+
To refresh access, make another request with the following parameters int he POST body:
130+
131+
| PARAMETER | DESCRIPTION |
132+
|-----------|-------------|
133+
| grant_type | The grant type you're using. Use "refresh_token" when refreshing access. |
134+
| client_id | Your app's client ID. |
135+
| client_secret | Your app's client secret. |
136+
| refresh_token | The `refresh_token` received from the previous response |
137+
138+
You'll get another response with an updated `access_token` and `refresh_token`, which can then be used to refresh access again.
139+
129140
#### OAuth Reference
130141

131142
| Security Scheme Type | OAuth 2.0 |

0 commit comments

Comments
 (0)