Socket
Book a DemoInstallSign in
Socket

@animelist/auth

Package Overview
Dependencies
Maintainers
1
Versions
17
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@animelist/auth

Provides an API to authenticate users with `MyAnimeList`

0.1.2
latest
Source
npmnpm
Version published
Weekly downloads
17
Maintainers
1
Weekly downloads
 
Created
Source

@animelist/auth

Table of Contents

  • Contents
  • Install
  • Environment variables
  • Get Current User
  • License

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/auth

yarn

yarn add @animelist/auth

pnpm

pnpm install @animelist/auth

Environment variables

These are the environment variables are used by the @animelist/auth

  • MAL_CLIENT_ID The id of your MyAnimeList client.
  • MAL_CLIENT_SECRET The secret key of your MyAnimeList client.
  • MAL_REQUEST_DEBUG Enable logging for the request going to MyAnimeList.
    • This also reads the NODE_ENV to only show logs when not in production.
  • MAL_SECRET_KEY The secret key used for encode/decode the user session.
  • PUBLIC_MAL_API_URL The 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 32

Or this beauty:

echo "console.log(require('crypto').randomBytes(32).toString('base64'))" | node

License

This project is licensed under the MIT License - see the LICENSE file for details.

Keywords

anime

FAQs

Package last updated on 23 Mar 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

About

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc

U.S. Patent No. 12,346,443 & 12,314,394. Other pending.