Facebook OAuth provider
OAuth integration for Facebook. Refer to step 1 of Facebook Login documentation for getting the required credentials. Provider id is facebook
.
import { facebook } from "@lucia-auth/oauth/providers";
import { auth } from "./lucia.js";
const facebookAuth = facebook(auth, config);
The identity
scope is always included regardless of provided scope
config.
facebook()
#
const facebook: (
auth: Auth,
config: {
clientId: string;
clientSecret: string;
redirectUri: string;
scope?: string[];
}
) => FacebookProvider;
Parameters#
Scope identity
is always included.
name | type | description | optional |
---|---|---|---|
auth | Auth | Lucia instance | |
config.clientId | string | Facebook OAuth app client id | |
config.clientSecret | string | Facebook OAuth app client secret | |
config.redirectUri | string | an authorized redirect URI | |
config.scope | string[] | an array of scopes | ✓ |
Returns#
type | description |
---|---|
FacebookProvider | Facebook provider |
Interfaces#
FacebookAuth
#
See OAuth2ProviderAuth
.
// implements OAuth2ProviderAuth<FacebookAuth<_Auth>>
interface FacebookAuth<_Auth extends Auth> {
getAuthorizationUrl: () => Promise<readonly [url: URL, state: string]>;
validateCallback: (code: string) => Promise<FacebookUserAuth<_Auth>>;
}
type |
---|
FacebookUserAuth |
Generics#
name | extends | default |
---|---|---|
_Auth | Auth | Auth |
FacebookTokens
#
type FacebookTokens = {
accessToken: string;
refreshToken: string;
accessTokenExpiresIn: number;
};
FacebookUser
#
email
is only included if email
scope if provided.
type FacebookUser = {
id: string;
name: string;
email?: string;
picture: {
data: {
height: number;
is_silhouette: boolean;
url: string;
width: number;
};
};
};
FacebookUserAuth
#
Extends ProviderUserAuth
.
interface FacebookUserAuth<_Auth extends Auth> extends ProviderUserAuth<_Auth> {
facebookUser: FacebookUser;
facebookTokens: FacebookTokens;
}
properties | type | description |
---|---|---|
facebookUser | FacebookUser | Facebook user |
facebookTokens | FacebookTokens | Access tokens etc |
Generics#
name | extends |
---|---|
_Auth | Auth |