bitspook / spookfox

A tinkerer's bridge b/w Emacs and Web Browser (Firefox and Chrome)
https://bitspook.in/projects/spookfox/
GNU Affero General Public License v3.0
127 stars 6 forks source link

Request: auth app #38

Open jonprairie opened 2 months ago

jonprairie commented 2 months ago

Hello, first off this is a really cool extension; thanks for creating it! I see a lot of potential after playing around with spookfox and I can't help but think of even more things I'd like to do. One of the (probably bad) ideas I had was using spookfox as a sort of auth liaison, mediating between emacs and the web in general. Would it be feasible to add a spookfox app to securely extract session/csrf tokens into emacs for user-approved hosts?

I'm thinking the app would verify the request then perform a configured check to see if the configured tokens exist and are valid. If so it would return those, if not it would open up a configured login page and then return the tokens after a success. Each emacs mode would provide a separate integration to supply the required data to spookfox, which would in turn provide the framework for obtaining the desired tokens.

The idea formed when playing around with spookfox and realizing that I'd like to use it to develop and test/submit leetcode/codewars solutions directly from my emacs environment, or query my gmail w/o needing the dedicated email infrastructure running on my machine, or message on discord, play on chessdotcom etc etc.

It seems like it'd be a really convenient way to open up a whole host of walled gardens to emacs.

Regardless, thanks for your time creating spookfox and reading my request!

bitspook commented 1 month ago

Hello @jonprairie,

I am glad you liked the project. What you describe seem feasible.

You most likely don't even need to create a Spookfox App just to play around (though you still can to bundle and share the functionality). This is even more true with release of v0.5.1, which extends spookfox-js-injection-eval to support executing js in any open tab. You can find details about the change in the changelog

I've added a tips section to the docs with a couple of tips on how to make browser talk to Emacs and vice-versa.

I hope this is helpful. Happy hacking!