ottomated / CrewLink-server

Voice Relay server for CrewLink.
GNU General Public License v3.0
692 stars 445 forks source link

[Feature Request] Password Protection #106

Open strikerthedj opened 3 years ago

strikerthedj commented 3 years ago

Hi!

Just have to say I love this system and commend you for making it. Its really amazing.

We are having an issue in our discord server that has a quite large following that people are swooping in and taking our private voice server URL. This has caused us to have to get creative with domain forwarding and generating a new subdomain for the server ever 24 hours.

It would be super cool if we could get a extra level of authentication. Even a 4 digit code that can be generated somehow by an admin to distribute to the users as needed.

Just a thought :)

SilentSpud commented 3 years ago

If you don't want unwanted people to use your server, a better option would be posting the URL somewhere where only the people who are supposed to have access do have that access, ie create a new restricted channel with the info in it

strikerthedj commented 3 years ago

Sure. Thats a good idea in practice but it doesn't stop users from sharing link even though we have rules against it. We have 5 proximity chat lobbies that are typically full with our 2500+ active users. So URL sharing is inevitable.

OiYouYeahYou commented 3 years ago

I see value in using a password. Even if you're sharing it to a public discord. It's easier to rotate a password over a subdomain.

Though, please don't argue over whether it should be added or not. If a contributor wants to do the work, they'll do it. And then it's up to Ottomated to accept it. But if you bicker it'll just add noise to people's notifications feed and annoy people subscribed to this repo.

strikerthedj commented 3 years ago

Though, please don't argue over whether it should be added or not. If a contributor wants to do the work, they'll do it.

I for sure wasn't arguing and sorry if thats how it came across. I was just clarifying that the solution he said wasn't going to work for my user base.

mhvis commented 3 years ago

I have been working on a small tool for exactly this purpose, which restricts access to CrewLink (or any service) based on IP address and lets people whitelist their IP in the firewall by entering an access code on a web page: mhvis/whitelink. It's past proof-of-concept phase but not yet finished, I do have a demo running on https://demo.whitelink.mhvis.nl with access code whitelink. If you're interested in trying to host it you'll need a supported firewall, which currently is only Azure, but I can easily add support for e.g. iptables.

I'd also gladly give it a try to write a PR which adds password protection to CrewLink, however only if that's a feature that @ottomated might be interested in to add.

strikerthedj commented 3 years ago

Interesting @mhvis! We are running it on the Heroku deployment and my coding skills are limited to say the least. It would be nice to implement it somewhere right into Crewlink. But thats far beyond my point of knowledge.

billyjbryant commented 3 years ago

I was working on the code necessary to implement password protection. I have finished the Server side but working on the client side portion now. I have yet to commit either to a PR as of yet.