-
Notifications
You must be signed in to change notification settings - Fork 99
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: add bluesky as a provider #281
base: main
Are you sure you want to change the base?
Conversation
Damn you are on 🔥 Regarding the scopes, I think we can anyway remove the duplicate because such a change on Something like: config.scopes = [...new Set(config.scopes)] |
I'm not sure I'm satisfied regarding the current implementation. Basically Bluesky is just a provider using atproto underneath, and we could have sooner or later another atproto provider. I think I'm facing the same issues that come with the complexity of providing a generic OIDC provider, but with the additional build time constraints on top of that (exposing the discovery document) So the configuration would be split into two parts:
I guess the new challenge here is to provide the dynamic metadata handler |
I love this approach! |
With the latest commit, Bluesky provider works out of the box with 0 config 😁 Now, I need to extract the whole logic somewhere else + expose the metadata. |
Please ping me when good to merge, amazing work you are doing @noook ❤️ |
@atinux It should be good. I'm having issue when I need to type
I understand the error, it makes sense, but I'm not sure how I can do this properly |
I just noticed that you use |
Resolves: #267
This PR adds Bluesky as a provider.
This provider requires the user to install extra dependencies to properly handle authorization, because of the way Bluesky works.
In order to begin the authorization process, we first need to know the user handle. This is required because we need to know against which instance of Bluesky we need to verify the user. Doing all the verifications manually require a lot of steps and adds complexity, so we use the
atproto
API instead.