mirror of
https://github.com/Sonny93/my-links.git
synced 2025-12-08 22:53:25 +00:00
34 lines
784 B
TypeScript
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);
|
|
}
|
|
}
|