GitHub - JamesNZL/notion-assignment-import
Notion Canvas Assignment Import
Notion Canvas Assignment Import - Get this Extension for 🦊 Firefox (en-GB)
<aside> 🔒 This database is hidden.
</aside>
OAuth2
FlowsequenceDiagram
participant Extension
participant oauth.jamesnzl.xyz
participant api.notion.com
Extension-->Extension: getAuthorisationURL()
Extension-->Extension: getState()
Note left of Extension: Save state in storage
Extension->>oauth.jamesnzl.xyz: GET /api/notion/authorise
Note over Extension,oauth.jamesnzl.xyz: redirect_uri='.../oauth'
Note over Extension,oauth.jamesnzl.xyz: state
oauth.jamesnzl.xyz-->oauth.jamesnzl.xyz: verifyRedirectURI()
Note over oauth.jamesnzl.xyz: Verify and encode redirect uri in state
oauth.jamesnzl.xyz->>api.notion.com: GET /v1/oauth/authorize
Note over oauth.jamesnzl.xyz,api.notion.com: client_id
Note over oauth.jamesnzl.xyz,api.notion.com: redirect_uri='/code'
Note over oauth.jamesnzl.xyz,api.notion.com: response_type='code'
Note over oauth.jamesnzl.xyz,api.notion.com: owner='user'
Note over oauth.jamesnzl.xyz,api.notion.com: state
api.notion.com->>oauth.jamesnzl.xyz: /api/notion/code
Note over api.notion.com,oauth.jamesnzl.xyz: state
Note over api.notion.com,oauth.jamesnzl.xyz: code
oauth.jamesnzl.xyz-->oauth.jamesnzl.xyz: getRedirectURI()
Note over oauth.jamesnzl.xyz: Retrieve redirect uri
oauth.jamesnzl.xyz->>Extension: .../oauth
Note over oauth.jamesnzl.xyz,Extension: state
Note over oauth.jamesnzl.xyz,Extension: code
Extension-->Extension: verifyState()
Note left of Extension: Retrieve saved state and compare
Extension->>oauth.jamesnzl.xyz: POST /api/notion/access-token
Note over Extension,oauth.jamesnzl.xyz: Content-Type='application/json'
Note over Extension,oauth.jamesnzl.xyz: code
oauth.jamesnzl.xyz->>api.notion.com: POST /v1/oauth/token
Note over oauth.jamesnzl.xyz,api.notion.com: Authorization='Basic ...'
Note over oauth.jamesnzl.xyz,api.notion.com: Content-Type='application/json'
Note over oauth.jamesnzl.xyz,api.notion.com: grant_type='authorization_code'
Note over oauth.jamesnzl.xyz,api.notion.com: code
Note over oauth.jamesnzl.xyz,api.notion.com: redirect_uri='/code'
api.notion.com->>oauth.jamesnzl.xyz: Response
oauth.jamesnzl.xyz-->oauth.jamesnzl.xyz: res.json(await response.json())
oauth.jamesnzl.xyz->>Extension: Response
Extension-->Extension: response.json()
Extension-->Extension: Storage.setapi.notion.comFields()
Note left of Extension: Save authorised response