This bounty is no longer available
Web3 DAO | lit-protocol Logo

Oauth integration with Google Drive and Lit Protocol

Organization

lit-protocol

Deadline

in almost 262 years

Status

ENDED

1353 USD

INSTRUCTIONS

Looking for a fullstack JS dev to create a project that will let users delegate access to google drive documents via the Lit protocol. The final product will be a react frontend + nodejs backend that lets users delegate access to their files, and lets other users request access to those files. The frontend can be utilitarian and ugly, and we will add design and style it later on.

User Types

“Drive Owner” who wants to share their files and documents with other people “Accessor” who wants to access files that belong to “Drive Owner”

User Journey

Drive Owner

The drive owner wants to share files on their google drive with members of their DAO, without having to approve access for each user. They delegate this approval to this app that you are building.

Requirements

The drive owner should be able to grant access to other users based on requirements they define. After creating one of these requirements, the Drive Owner should be able to see a list of these requirements and the access they will grant. The Drive Owner should be able to delete a given requirement. The Drive Owner should be able to paste a Google Drive link into a text field, and have an “access” link generated that they can send to Accessors. The Google Drive link should be parsed and when an Accessor visits the access link, the back end should use the Google Drive Oauth API to grant access to the given Google Drive file that was provided in the text field.

Process for granting access:

  1. Drive Owner uses Google Oauth to authorize this app to share their documents with others
  2. Drive Owner is presented with a “control panel” that lets them set the requirements that an Accesor must meet to be able to access a file, and the Google Drive permissions that the Accessor would be granted, such as read, write, or comment access.
  3. Drive Owner clicks “Grant Access” and is presented with a modal that lets them define the requirements. We have this modal already and will provide it for you.
  4. Drive Owner picks the type of access that will be granted, such as read, write, or comment.
  5. You should save these to the database on the backend for future retrieval

Accessor

The Accessor wants to access files that exist on the Drive Owner’s drive. They do this by clicking a link that is provided to them by the Drive Owner, and was generated by the Drive Owner using this app. When they arrive, they will enter their Google email address into a text field, and they will be asked to sign a message with their wallet. This signed message will be sent to the Lit Protocol using the Lit JS SDK (it’s a single function call) and the Lit JS SDK returns a JWT. The JWT should be sent to the back end api which will verify it using the Lit JS SDK (a single function call), and if the verification function returns true, the backend should use the Google Oauth API to grant access to the file. The backend should return the url for the file, which was saved when the Drive Owner created the requirement. The frontend should then redirect the user to the url of the file on Google Drive.