I've been looking at the 2.0 version of this application and very much appreciate the amount of effort put forward here.
I did have a question as to the reason the encryption of the access and refresh tokens was removed and allowed to be stored in plaintext in the database? This seems to go against best practices of keeping them confidential in transit and in storage.
Chris, I've published a new version that implements my suggestion above.
That's a good question! Short answer: I had no time to re-implement it.
Long answer: there were a few problems with that logic:
If I had time, what I would do is use a non-reversible function (hash+salt) to secure the storage of the ClientSecret. That's similar to how the Password field of the user is stored. In fact, we could use the same action from the Users module (EncryptPassword) to do that.
This particular feature was low in my priority list because we are using full database encryption.
It's not a big feature, if you or anyone else wants to contribute. Just the UI would need to change a little, and the logic that validates the ClientSecret.
That's great! I'll take a look.