GitHub Repository


GitHub - JamesNZL/notion-assignment-import

Chrome Web Store


Notion Canvas Assignment Import

Mozilla Add-on


Notion Canvas Assignment Import - Get this Extension for 🦊 Firefox (en-GB)

To Do


<aside> 🔒 This database is hidden.

</aside>

Untitled

OAuth2 Flow


sequenceDiagram
  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