OAuth (1.0): First version of the protocol, focused on providing secure access delegation.
OAuth 2.0: A complete redesign of OAuth 1.0, with enhancements to security, flexibility, and ease of use.
2. Complexity
OAuth: More complex due to its reliance on cryptographic signing of requests. Every API call had to be signed using HMAC or RSA.
OAuth 2.0: Simpler and more developer-friendly. It uses tokens (bearer tokens) for access without requiring cryptographic signing of each request.
3. Security Mechanism
OAuth: Security relies heavily on cryptographic signatures for request verification. It does not support HTTPS natively, but HTTPS is often used alongside for additional security.
OAuth 2.0: Emphasizes the use of HTTPS for secure communication and shifts focus from signing requests to token-based security.
4. Tokens
OAuth:
Tokens are temporary credentials obtained during the handshake process.
Requires cryptographic methods for verification.
OAuth 2.0:
Introduces different types of tokens:
Access Tokens: Used to access protected resources.
Refresh Tokens: Used to obtain a new access token when the current one expires.
Tokens are bearer tokens, which means anyone holding them can use them without extra verification.
5. Client Types
OAuth: Supports only server-to-server communication and doesn’t differentiate between client types.