4 ms·
A has an account at B, A has another account at C, A wants to allow C to access data at B (or to send data to B on A's behalf). How can B be sure that C is act
by TZubiri 8mo ago
A has an account at B, A has another account at C, A wants to allow C to access data at B (or to send data to B on A's behalf).
How can B be sure that C is acting on A's behalf? Can A only allow C to access certain data (or send only certain data) in order to reduce risk?
A protocol that allows for that three way negotiation is OAuth.
Like with most specs, a lot of the complexity is added in the later years, by companies that have thousands of users and complex edge cases and necessities, and they are the ones dominating the council, and their needs are the ones that push forward newer versions.
So with most specs, the best way to start learning it is by learning from the oldest specs to the newest ones, so if you start by reading or using OAuth2, you will be bombarded with a lot of extra complexities, not even the current experts started like that.
If you need to catch up, always start with the oldest specs/versions.
- mettamage 8mo agoWow, that was a really valuable lesson. I wish I had this one at university. But the next best time to have it, is now. So thanks! I'll start reading the oldest HTTP spec for funzies.
- TZubiri 8mo agoThat'd be RFC (checks notes) 1945 for HTTP1.0 and later RFC (checks notes again) 2616 for HTTP 1.1. I think there's HTTP 0.9 but I went directly for 1.0 Fwiw it's entirely possible to build a web server by listening on port 80 and reading the text stream and writing to the output stream, no libraries no frameworks no apache no ngninx. And I don't mean you need to rebuild a general purpose an apache like server, maybe for a landing page you can just serve a static page and you will be implementing a very small subset of HTTP.
- mettamage 8mo agoHaha, thanks! I'll check them out. > Fwiw it's entirely possible to build a web server by listening on port 80 and reading the text stream and writing to the output stream Sounds like a fun weekend project.