aws-amplify / amplify-js

A declarative JavaScript library for application development using cloud services.
https://docs.amplify.aws/lib/q/platform/js
Apache License 2.0
9.42k stars 2.12k forks source link

More Social Login Providers? #3347

Open cliffordh opened 5 years ago

cliffordh commented 5 years ago

Is your feature request related to a problem? Please describe. I have Google, Facebook, Amazon login mostly working. But I'd like to add: Twitter, LinkedIn, Reddit, GitHub, etc.

Describe the solution you'd like Social Login is one of the most effective ways to onboard and retain users. The current options for Google, Facebook, Amazon cover a majority of users with those accounts and works for many B2C end users, however, if you have a site which is more B2B or professional in nature it would be preferable to use LinkedIn and various other social login providers. B2B consumers may not want their personal Facebook account used for social login with a "business" oriented site.

Describe alternatives you've considered none

Additional context n/a

usmansbk commented 5 years ago

@cliffordh I believe Cognito supports custom providers.

Screenshot (61)

cliffordh commented 5 years ago

Thanks @usmansbk I noticed that. But, I don't see anything in Amplify to support other providers other than Google, Facebook, LoginWithAmazon.

manueliglesias commented 5 years ago

@cliffordh If you configure a provider as @usmansbk mentioned, you can try using Identity Pool Federation and making sure you pass the right stuff to Auth.federatedSignIn()

ahummel25 commented 5 years ago

@manueliglesias I'm a bit confused. I'm also trying to leverage Cognito for user login via Twitter. Do we need to create a custom provider or use the available Twitter provider already there? It's clear that Cognito does not have Twitter available as a CognitoHostedUIIdentityProvider, so what real backend support is there?

stale[bot] commented 5 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

loganpowell commented 5 years ago

Would like to have more clear advice surrounding the topic of adding other social providers as well. The information is - as is - scattered and hard to nail down.

I found this - for example - for linkedin: https://aws.amazon.com/premiumsupport/knowledge-center/cognito-linkedin-auth0-social-idp/

We do not have an ATO (authority to use/operate) auth0, so adding another auth provider to the pipeline - if you're already using auth0 - seems to make cognito reduntant. If I'm going to use auth0, why would I also use cognito?

kaibadash commented 4 years ago

https://aws-amplify.github.io/docs/js/authentication

Enable 3rd party social providers, e.g. Facebook, Twitter, Google and Amazon

Is that a lie?

mrowles commented 2 years ago

Is there any indication if this enum is going to be expanded?

types/Auth.ts

export enum CognitoHostedUIIdentityProvider {
    Cognito = 'COGNITO',
    Google = 'Google',
    Facebook = 'Facebook',
    Amazon = 'LoginWithAmazon',
    Apple = 'SignInWithApple',
}

Until then, is there a guide on how to use other federated identities with Amplify's client libraries?

await Auth.federatedSignIn({
  provider: 'Twitter', // <-- does not work
});
jgarciablockbar commented 2 years ago

+1 on @mrowles comment

what's the recommended way to work with a different provider?

In my case I'm trying:

Auth.federatedSignIn({ provider: 'UnstoppableDomains' });

which Typescript complains about:

Type '"UnstoppableDomains"' is not assignable to type 

For now I disabled the line:

// eslint-disable-next-line
// @ts-ignore
return Auth.federatedSignIn({ provider: 'UnstoppableDomains' });

but wondering if there was a better way to handle this, Thanks!