Twitter (X)
Get your Twitter Credentials
Get your Twitter credentials from the Twitter Developer Portal.
Make sure to set the redirect URL to http://localhost:3000/api/auth/callback/twitter for local development. For production, you should set it to the URL of your application. If you change the base path of the auth routes, you should update the redirect URL accordingly.
Twitter API v2 now supports email address retrieval. Make sure to request the user.email scope when configuring your Twitter app to enable this feature.
Configure the provider
To configure the provider, you need to import the provider and pass it to the social_providers option of the auth instance.
require "better_auth"
auth = BetterAuth.auth(
secret: ENV.fetch("BETTER_AUTH_SECRET"),
base_url: ENV.fetch("BETTER_AUTH_URL", "http://localhost:3000"),
social_providers: {
twitter: BetterAuth::SocialProviders.twitter(
client_id: ENV.fetch("TWITTER_CLIENT_ID"),
client_secret: ENV.fetch("TWITTER_CLIENT_SECRET")
)
}
)Sign In with Twitter
To sign in with Twitter, call auth.api.sign_in_social on your Ruby auth instance. The endpoint body takes the following properties:
provider: The provider to use. It should be set totwitter.
response = auth.api.sign_in_social(
body: {
provider: "twitter",
callback_url: "/dashboard",
error_callback_url: "/login",
disable_redirect: true
}
)
redirect_url = response.fetch(:url)