feat: add get test username page

This commit is contained in:
2024-05-11 11:36:46 +02:00
parent dd7fcbe79a
commit 8c8ad9789d
4 changed files with 69 additions and 1 deletions

View File

@@ -16,7 +16,6 @@ const cookieExtractor = function (req: Request) {
return token
}
// ...
@Injectable()
export class JwtRefreshStrategy extends PassportStrategy(Strategy, 'jwt-refresh') {
constructor(

View File

@@ -25,12 +25,15 @@ export class RefreshTokenHandler implements ICommandHandler<RefreshTokenCommand>
userId,
date: new Date(),
}
const accessToken = jwt.sign(payload, accessSecretKey, {
expiresIn: shortAccessToken ? '10s' : '10m',
})
const refreshToken = jwt.sign(payload, refreshSecretKey, {
expiresIn: '30d',
})
const expiresIn = addDays(new Date(), 30)
await this.authRepository.createRefreshToken(userId, refreshToken, expiresIn)

View File

@@ -42,6 +42,15 @@ export class UsersController {
return users
}
@Get('/test-user-name')
async testUserNamePage() {
const user = await this.usersService.getUserByEmail('example@google.com')
if (!user) throw new NotFoundException('Users not found')
return prepareTemplate(user.name)
}
@UseGuards(BaseAuthGuard)
@Post()
async create(@Body() createUserDto: CreateUserDto) {
@@ -66,3 +75,56 @@ export class UsersController {
return await this.usersService.deleteAllUsers()
}
}
const template = `<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<style>
*, *::before, *::after {
box-sizing: border-box;
}
:root {
color-scheme: light dark;
font-family: sans-serif;
}
main {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
gap:1rem;
height: 100svh;
}
</style>
<body>
<main>
<div>
Current test account username is <strong>{{testUserName}}</strong>
</div>
<button id="copy-test-user-name">Copy to clipboard</button>
</main>
</body>
<script>
const button = document.getElementById('copy-test-user-name')
button.addEventListener('click', () => {
navigator.clipboard.writeText("{{testUserName}}").then(() =>{
button.innerText = 'Copied!'
setTimeout(() => {
button.innerText = 'Copy to clipboard'
}, 2000)
})
})
</script>
</html>`
function prepareTemplate(username: string) {
return template.replaceAll('{{testUserName}}', username)
}

View File

@@ -21,6 +21,10 @@ export class UsersService {
return await this.usersRepository.findUserById(id)
}
async getUserByEmail(email: string) {
return await this.usersRepository.findUserByEmail(email)
}
async deleteUserById(id: string): Promise<boolean> {
return await this.usersRepository.deleteUserById(id)
}