Files
my-links/app/user/services/api_token_service.ts

34 lines
784 B
TypeScript

import User from '#user/models/user';
import { AccessToken } from '@adonisjs/auth/access_tokens';
type CreateTokenParams = {
name: string;
expiresAt?: Date;
};
export class ApiTokenService {
createToken(user: User, { name, expiresAt }: CreateTokenParams) {
const expiresIn = expiresAt ? expiresAt.getTime() - Date.now() : undefined;
return User.accessTokens.create(user, undefined, {
name,
expiresIn,
});
}
getTokens(user: User) {
return User.accessTokens.all(user);
}
revokeToken(user: User, identifier: number) {
return User.accessTokens.delete(user, identifier);
}
validateToken(token: AccessToken) {
return User.accessTokens.verify(token.value!);
}
getTokenByValue(user: User, value: string) {
return User.accessTokens.find(user, value);
}
}