Add additional social logon providers

Please consider adding additional social network support to Identity. Specifically Twitter and Facebook.

Thanks for the suggestion. PR’s welcome! (They’d be for gotrue: https://github.com/netlify/gotrue).

Note that if you do consider doing this, I’d suggest letting us know before you start so we can see if we have any local advice for you around what’s been tried and what kind of implementation we’ll be more likely to merge.

But, it is a great feature request and I put it in front of our Product team so they could consider it. Just not sure we’ll get to implementing it soon. But I could be wrong.

I’m a little confused by something. I went looking at issues there and see this: https://github.com/netlify/gotrue/pull/111

Which seems to imply Facebook login was implemented?

Yea, the gotrue backend is implemented in an MVP way. However, the Netlify Identity feature doesn’t expose that in the UI. If you do host your own instance of gotrue, you could probably use that feature directly (though it won’t be integrated with Netlify, of course).

Let me know how it goes.

Ok, but then my original request stands true, right? It isn’t supported now, I’d like Netlify to support it. :slight_smile: This is how folks should request features, right?

hi raymond - yes, posting here is a great way to outline a feature request for us - it’s more just that we have too many people telling us great ideas and too little time to implement them all! If you’d like to contribute to speed this up, i think all the info is listed above, but if you need more guidance, let me know.

Heh, I feel like we’re going in circles here. :wink: You pointed me to the GitHub repo for the open source project that Netlify is using behind the scenes. It’s done there though. The PR itself says Netlify has to implement is. Does this imply that it’s something Netlify itself has to add? If I’m wrong, let me know, but this really sounds like the work has been done, but Netlify has to add it in their UI/settings/etc.

Hey Raymond! :wave:t2:

I’ve spend quite a bit of time in the GoTrue and GoTrue-js libraries over the last couple of weeks. Between our prior thread and another, hopefully I can point to the code behind Identity answers!

It’s a good question though and it was a fun rabbit hole to jump down for an hour :stuck_out_tongue: The tl;dr is that while the Facebook provider was implemented in the GoTrue / back end service some years ago, we don’t actually know if it works or not and there’s no way to activate it as far as I can tell. Even trying to tap directly in to Netlify’s core API and update the Identity service settings to set facebook: true - I don’t think the Netlify core API is even allowing that value to propagate down to the GoTrue service. There’s a solid chance the GoTrue provider implementation is out of date though, and who knows if Netlify still has valid standing with Facebook’s API settings as an app that can be integrated.

So… you’re all right? There’s a lot of variables on all ends of the workflow as far as I can tell. The GoTrue service does actually respond with a URL to Facebook that would indicate a token request but it doesn’t contain app credentials. I’m not going to test it but there may be a chance that if you sign up on Facebook as your own app and inject that key into the redirect response from GoTrue, maybe that’ll work? Shooting in the dark here.

Anywho… Facebook isn’t implemented in the Netlify Core API, Netlify Dashboard, or Netlify-Identity-Widget, which most folks use. Gotrue-js supports it from a generic standpoint but it’s just a pass-through to GoTrue anyway :slight_smile:


Jon

Instagram, linkedin and Pinterest are also social media sites.

So I take your (@jonsully) response to imply what I think I saw myself - that the open source project supports it but Netlify needs to do some work on their end to enable it. Which I’m fine with as long as Netlify recognizes this request. It doesn’t mean they have to leap to it of course, but recognizes that it’s on their side to implement, not the community. If your wrong, or i’m wrong, and it can be done by us, then a clear explanation of how would be appreciated.

Yeah - so I think it’s worth clarifying. Does Netlify Identity support Facebook, Twitter, Instagram, etc. out of the box in the netlify-identity-widget package? No. I think this thread’s intention is to be a face-value feature request for those things. Regardless of the Identity stack being open source, it’s still a Netlify product and this is a feature request. :+1:t2:

Now, are there ways of (maybe) making this happen with custom code one way or another? Or submitting PRs to the open source projects? Sure, there’s lots of ways. But that’s all tertiary to the feature request to one of Netlify’s products :slight_smile:


Jon

1 Like

Sorry to go on vacation in the middle of this conversation, but thanks Jon for driving and I think I can wrap this up with a summary for today:

  1. We’re not sure how to activate (and whether it would work if so) the facebook connector for gotrue. Since the code is 3 years old and was probably never used, it being there is not a good guarantee that it is deployed, or ready for use. I’ll check in with our backend team on that topic so we can see if more experimentation like @jonsully describes would be warranted or no. I suspect it does not work between Jon’s testing and the lack of use (since the feature is neither documented nor officially supported).

  2. Once we confirm that, we’ll know whether it makes sense to suggest that the community extend the identity widget to support it (and how to activate it if you don’t use the widget, if possible).

  3. Either way, our Product team will have to decide when and if to make any updates, and will take this thread into account when they do so. They also have to take into account all the other things product teams do, of course: how it affects other priorities, how it benefits our business as well as our customers, and whether it is something the business can commit to supporting - since a release without oingoing support commitment is not much of a release to rely on.

Thank for the update!

Yeah, for what it’s worth- curiosity got the best of me (Facebook, Twitter, etc would be cool for my sites too!) and I spent a sizable amount of time seeing if I could wire it up. Even injecting custom Functions and getting real complicated, it’s not possible unless you know the JWT secret the GoTrue instance is using. It’s also just generally painful, requires you configuring your own Facebook app, and I generally wouldn’t recommend it :rofl:

I know there’s a setting in the Netlify Dashboard for setting your own JWT secret but I don’t recall if that sets it for the GoTrue instance or if it’s for something else.

As one final stretch, you could maybe make it work if you’re using an External OAuth provider- which Netlify does support… I’m just not sure it’s worth all the effort!