unswsecsoc/UNSW-Discord-Verification-Bot
Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
 |  | |||
 |  | |||
 |  | |||
 |  | |||
 |  | |||
 |  | |||
 |  | |||
 |  | |||
 |  | |||
 |  | |||
 |  | |||
 |  | |||
 |  | |||
 |  | |||
 |  | |||
Repository files navigation
This is a simple and secure email-based verification bot for UNSW students and staff, hosted for free by the UNSW Security Society.
It is designed to be as simple as possible to implement in any UNSW society as quickly as possible.
See images of the verification process in images folder.
- Invite the discord bot to the server and grant requested permissions (secso.cc/verificationbot)
- Create an admin-only
#verification-logstext channel - Create a server role called
verifiedwhich grants users access to server channels - Run
/set-verified-role @verified - Create a
#verifytext channel - Run
/send-verify-buttonin#verify - Run
/check-setupto make sure everything is set up correctly
Once these steps are complete users will be able to verify by clicking the Verify Email button.
- The bot user role must be higher in the hierarchy than the
verifiedrole in server settings. - The
#verification-logschannel should only be accessible by a few trusted members of the society's executive team to protect user privacy. - The
#verifychannel should be the only channel accessible to an unverified discord user. It doesn't need to be called 'verify'. To do this, remove all permissions from@everyoneexceptView ChannelandRead Message Historyin#verify. They will still be able to use the verification button. - You should get someone to test verification after joining the server (without any roles) to make sure you've set the permissions up correctly!
- You might want to send a message in
#verifyexplaining why people need to verify and what they should do if it isn't working for them.
Join the Discord server to receive announcements about upgrades, outages and to get help: secso.cc/verificationbotdiscord
SecSoc does not guarantee the availability of backups for all societies so we reccommend regularly utilising the /export (admin only) command and maintain backups for your own society. If issues arise, contact projects@unswsecurity.com or for general problems, raise an issue on this GitHub repository.
In order to migrate existing verified discord members to this verification bot, you will need to /import a CSV in the following format:
discord_id,email,verified,verified_at
123456789123456789,person1@ad.unsw.edu.au,1,
234567892345678923,person2@ad.unsw.edu.au,1,Every row must contain at least a discord_id and email. If verified is omitted it will default to 0 (false). Optionally, you may also add an informational verified_at value which stores the time of verification in unix seconds.
You may find it useful to utilise a Python script to migrate your current configuration to a CSV. Feel free to contact projects@unswsecurity.com for help.
If you already have a role for verified users, you don't have to create a new one. You can set that role as the one used by the bot with /set-verified-role <role>.
At the time of writing, this bot provides many benefits over other bots with the same aim:
- No passwords are ever transmitted or stored
- Open source implementation
- Supported by a UNSW SecSoc as compared to individual developers who may stop maintaining their projects
- Ability for societies to manage their own backups
- No dependencies on other small projects
- Verification emails don't get marked as junk mail by UNSW
- Easily self-hostable via Docker Hub image
- Easy to migrate from existing verification solutions
- Support from SecSoc Projects team if issues arise
- Extremely fast setup
- Highly documented for developers
Any PRs, suggestions or issues raised will be attended to by the UNSW SecSoc Projects team. Feel free to create a pull request to fix typos, add features or improve performance if you wish and they will be reviewed and accepted if they are likely to prove useful for all societies. You can find a system flowchart here: SecSoc Discord Verification.drawio.pdf.
