YiviTube is a demo attribute issuance and verifier. It offers membership attributes to users, who then need to disclose these in order to watch a movie.
It showcases the following features:
- Issuance and verification of attributes to users.
- Selective disclosure of attributes: although an identifying membership number is issued to the user, this number is not disclosed during verification, so that YiviTube knows that a member is watching a movie, but not which member.
- Granting access to a resource only after successful Yivi attribute verification.
Note that the movies themselves are not included in this repository and only a Youtube embedded video will display a trailer for the chosen movie.
- In the
www
directory:yarn
ornpm install
composer install
- The
data
directory contains the movies and private and public keys, and should be outside your webserver's webroot. Be sure to point to it in yourconfig.php
, see the included example. - Follow the instructions in the
data
andwww/content
folders to install your movies. There are already example movies set up in the config file, movies.js and data/videos directory with covers in content/covers. You can customize and change these as you wish. - Lastly, in the
www
directory, run a php server (e.gphp -S localhost:8080
). You will also need to run an IRMA server. - Note that demo keys provided are only for local testing. YiviTube needs IRMA server's public key and irma server will need it's corresponding private key, which can be provided using
--jwt-privkey-file
flag.
You can use the docker compose up --build
to build and test the project in one go.