@animelist/auth v0.1.2
@animelist/auth
Table of Contents
Contents
Provides an interface to authenticate users with MyAnimeList oauth2 provider.
You may want to use one of the implementations of this package instead:
If you want to use other framework or want to implement your own, we also provide a handler that uses the web standard Request/Response createMyAnimeListFetchHandler the same handler is just reexported from the nextjs and sveltekit implementations.
Install
In case you want to use this package directly, install it with your favorite package manager:
npm
npm install @animelist/authyarn
yarn add @animelist/authpnpm
pnpm install @animelist/authEnvironment variables
These are the environment variables are used by the @animelist/auth
MAL_CLIENT_IDThe id of your MyAnimeList client.MAL_CLIENT_SECRETThe secret key of your MyAnimeList client.MAL_REQUEST_DEBUGEnable logging for the request going to MyAnimeList.- This also reads the
NODE_ENVto only show logs when not in production.
- This also reads the
MAL_SECRET_KEYThe secret key used for encode/decode the user session.PUBLIC_MAL_API_URLThe url of the endpoint that handlers the requests, by default is/api/myanimelist
Get Current User
After the user is logged you can get the current user information using getServerSession.
Which returns null if the user is not logged or UserSession:
type UserSession = {
userId: number;
refreshToken: string;
accessToken: string;
};import { getServerSession } from "@animelist/auth/server";
const session = await getServerSession(cookies);
if (session) {
console.log("User is logged in");
}You can also use getRequiredServerSession(cookies) which throws an error if the user is not logged in.
If you want to get the user information you can use the
@animelist/client.
import { MALClient } from "@animelist/client";
const client = new MALClient({ accessToken });
const user = await client.getMyUserInfo();Good to know
If the MAL_SECRET_KEY is not set you will receive this warning:
⚠️ 'process.env.MAL_SECRET_KEY' was not set, using a default secret key
You can generate a secret key using:
openssl rand --base64 32Or this beauty:
echo "console.log(require('crypto').randomBytes(32).toString('base64'))" | nodeLicense
This project is licensed under the MIT License - see the LICENSE file for details.
11 months ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago