Skip to content

Commit 3273e90

Browse files
Jonathan Grinsteadclaude
andcommitted
📝 Add Alternatives section to README
Closes #674 Replace the informal "if you are in the wrong place" bullet list under the Synopsis with a real "Alternatives" section: a comparison table of the prominent Ruby OAuth/OIDC libraries (omniauth-oauth2, openid_connect, rack-oauth2, doorkeeper, oauth 1.0a) describing each library's role and when you'd reach for it instead of this client gem. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
1 parent 171609a commit 3273e90

1 file changed

Lines changed: 20 additions & 4 deletions

File tree

README.md

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -124,15 +124,31 @@ Notes
124124

125125
</details>
126126

127-
If it seems like you are in the wrong place, you might try one of these:
127+
### Alternatives
128128

129-
* [OAuth 2.0 Spec][oauth2-spec]
130-
* [doorkeeper gem][doorkeeper-gem] for OAuth 2.0 server/provider implementation.
131-
* [oauth sibling gem][sibling-gem] for OAuth 1.0a implementations in Ruby.
129+
This gem is a low-level OAuth 2.0 **client** (it talks _to_ an authorization server to obtain and use tokens).
130+
If that isn't quite what you need, one of these may be a better fit:
131+
132+
| Library | Role | Why you might use it instead |
133+
|------------------------------------------------|-------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
134+
| **this gem** ([oauth2][📜src-gh]) | OAuth 2.0 / 2.1 + OIDC **client** | You are calling an OAuth 2.0 API, or signing in against a provider, and want a small, dependency-light, spec-faithful client with fine-grained control over the request/response cycle. |
135+
| [omniauth][omniauth-gem] + [omniauth-oauth2][omniauth-oauth2-gem] | "Log in with…" **client** (Rack) | You primarily want user _authentication_ ("Log in with GitHub/GitLab/Google") wired into a Rack/Rails app via a strategy, rather than driving the token flow yourself. |
136+
| [openid_connect][openid-connect-gem] | OpenID Connect client & server | You need full [OpenID Connect][oidc-spec] (ID-token validation, discovery, userinfo, etc.) with batteries included. Maintained by [@nov][nov]. |
137+
| [rack-oauth2][rack-oauth2-gem] | OAuth 2.0 client **and** server | You want lower-level Rack primitives, need both client and server pieces, or are building on top of `openid_connect`. Maintained by [@nov][nov]. |
138+
| [doorkeeper][doorkeeper-gem] | OAuth 2.0 **server / provider** | You want to _be_ the authorization server — issuing tokens to other apps — in a Rails/Grape/Sinatra application, rather than acting as a client. |
139+
| [oauth][sibling-gem] | OAuth **1.0a** client & server | The provider you integrate with only speaks the older OAuth 1.0a protocol. This is our sibling gem. |
140+
141+
See also the [OAuth 2.0 Spec][oauth2-spec] and the [OpenID Connect Spec][oidc-spec].
132142

133143
[oauth2-spec]: https://oauth.net/2/
144+
[oidc-spec]: https://openid.net/developers/how-connect-works/
134145
[sibling-gem]: https://gitlab.com/ruby-oauth/oauth
135146
[doorkeeper-gem]: https://github.com/doorkeeper-gem/doorkeeper
147+
[omniauth-gem]: https://github.com/omniauth/omniauth
148+
[omniauth-oauth2-gem]: https://github.com/omniauth/omniauth-oauth2
149+
[openid-connect-gem]: https://github.com/nov/openid_connect
150+
[rack-oauth2-gem]: https://github.com/nov/rack-oauth2
151+
[nov]: https://github.com/nov
136152

137153
## 💡 Info you can shake a stick at
138154

0 commit comments

Comments
 (0)