useOAuth
Authenticate with third-party providers like Google, Apple, Facebook, Discord, and Twitter.
Usage
import { OAuthProvider, useOAuth } from '@openfort/react';
function SocialLogin() {
const { initOAuth, linkOauth, isLoading } = useOAuth();
const loginWithGoogle = () => initOAuth({ provider: OAuthProvider.GOOGLE });
const linkDiscord = () => linkOauth({ provider: OAuthProvider.DISCORD });
return null;
}Return type
type UseOAuthReturn = {
initOAuth(options: InitOAuthOptions): Promise<OAuthResult>
linkOauth(options: InitOAuthOptions): Promise<OAuthResult>
storeCredentials(options: StoreCredentialsOptions): Promise<StoreCredentialsResult>
isLoading: boolean
isError: boolean
isSuccess: boolean
error?: OpenfortError | null
}
type OAuthResult = {
error?: OpenfortError
}
type StoreCredentialsResult = {
user?: AuthPlayerResponse
wallet?: UserWallet
error?: OpenfortError
}Parameters
initOAuth / linkOauth
type InitOAuthOptions = {
provider: OAuthProvider
redirectTo?: string
onSuccess?: (data: OAuthResult) => void
onError?: (error: OpenfortError) => void
}
enum OAuthProvider {
GOOGLE = "GOOGLE",
FACEBOOK = "FACEBOOK",
DISCORD = "DISCORD",
TWITTER = "TWITTER",
EPIC_GAMES = "EPIC_GAMES",
APPLE = "APPLE",
CUSTOM = "CUSTOM",
}storeCredentials
Store OAuth credentials manually (for custom OAuth flows).
type StoreCredentialsOptions = {
player: string
accessToken: string
refreshToken: string
onSuccess?: (data: StoreCredentialsResult) => void
onError?: (error: OpenfortError) => void
}