Axios again. Done. Registration flow seems ok.

This commit is contained in:
2022-09-07 02:47:37 +02:00
parent 8a9973565b
commit 40eb1da379
99 changed files with 19053 additions and 24962 deletions

View File

@@ -1,4 +1,13 @@
import { Controller, Get, Post, Body, Patch, Param, Delete } from '@nestjs/common';
import {
Controller,
Get,
Post,
Body,
Patch,
Param,
Delete,
Headers,
} from '@nestjs/common';
import { RegisterService } from './register.service';
import { CreateUserDto } from './dto/create-user.dto';
import { UpdateUserDto } from './dto/update-user.dto';
@@ -8,13 +17,16 @@ export class RegisterController {
constructor(private readonly registerService: RegisterService) {}
@Post()
create(@Body() createUserDto: CreateUserDto) {
return this.registerService.create(createUserDto);
create(
@Headers('Authorization') accessToken: string,
@Body() createUserDto: CreateUserDto,
) {
return this.registerService.create(accessToken, createUserDto);
}
@Get()
findAll() {
return this.registerService.findAll();
findAll(@Headers('Authorization') accessToken: string) {
return this.registerService.findAll(accessToken);
}
@Get(':id')

View File

@@ -1,7 +1,7 @@
import { Injectable } from '@nestjs/common';
import { Body, Injectable } from '@nestjs/common';
import {
Configuration,
RealmUsersPostRequest,
CredentialRepresentation,
UserRepresentation,
UsersApi,
} from '../../../keycloak/kc-client';
@@ -9,28 +9,81 @@ import { UpdateUserDto } from './dto/update-user.dto';
@Injectable()
export class RegisterService {
async create(userRepresentation: UserRepresentation) {
const accessToken =
'eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICItQjJOQnpxUmhMTjBqNlJyUWFGRHpMaTNIQUhaMFU0VDZQUFN5Y3cyc0RrIn0.eyJleHAiOjE2NjIzODQ0NjAsImlhdCI6MTY2MjM4NDE2MCwianRpIjoiNTNkMDA2NTYtYWE2ZS00YjY1LTgyMTEtNWY4ODJmODVlNTIxIiwiaXNzIjoiaHR0cHM6Ly9vYXV0aC5hcHBzLmFydHNlcnZpcy5hbC9hdXRoL3JlYWxtcy9GbHV4ZW0tREVWIiwiYXVkIjpbInJlYWxtLW1hbmFnZW1lbnQiLCJhY2NvdW50Il0sInN1YiI6IjIzYjM5MTk0LTlhMmQtNDk3Yi1hYjM5LWIwM2YwYTJjMzM5YiIsInR5cCI6IkJlYXJlciIsImF6cCI6IndlYmFwcC1kZXYiLCJzZXNzaW9uX3N0YXRlIjoiYTg1YjZhMWUtMGQzNy00OWQ0LTk5YjUtMmZhOTU5MGZkYzhlIiwiYWNyIjoiMSIsImFsbG93ZWQtb3JpZ2lucyI6WyJodHRwczovL2hhc3VyYS5hcHBzLmFydHNlcnZpcy5hbCIsImh0dHA6Ly9sb2NhbGhvc3Q6MzAwMCJdLCJyZWFsbV9hY2Nlc3MiOnsicm9sZXMiOlsib2ZmbGluZV9hY2Nlc3MiLCJ1bWFfYXV0aG9yaXphdGlvbiIsImRlZmF1bHQtcm9sZXMtZmx1eGVtLWRldiJdfSwicmVzb3VyY2VfYWNjZXNzIjp7InJlYWxtLW1hbmFnZW1lbnQiOnsicm9sZXMiOlsibWFuYWdlLXVzZXJzIl19LCJ3ZWJhcHAtZGV2Ijp7InJvbGVzIjpbImFkbWluIiwidXNlciJdfSwiYWNjb3VudCI6eyJyb2xlcyI6WyJtYW5hZ2UtYWNjb3VudCIsIm1hbmFnZS1hY2NvdW50LWxpbmtzIiwidmlldy1wcm9maWxlIl19fSwic2NvcGUiOiJlbWFpbCBoYXNzdXJhIHByb2ZpbGUiLCJzaWQiOiJhODViNmExZS0wZDM3LTQ5ZDQtOTliNS0yZmE5NTkwZmRjOGUiLCJlbWFpbF92ZXJpZmllZCI6dHJ1ZSwiaHR0cHM6Ly9oYXN1cmEuaW8vand0L2NsYWltcyI6eyJ4LWhhc3VyYS1kZWZhdWx0LXJvbGUiOiJ1c2VyIiwieC1oYXN1cmEtdXNlci1pZCI6IjIzYjM5MTk0LTlhMmQtNDk3Yi1hYjM5LWIwM2YwYTJjMzM5YiIsIngtaGFzdXJhLWFsbG93ZWQtcm9sZXMiOlsiYWRtaW4iLCJ1c2VyIl19LCJuYW1lIjoiQWRtaW4gVGVzdCIsInByZWZlcnJlZF91c2VybmFtZSI6ImFkbWluIiwiZ2l2ZW5fbmFtZSI6IkFkbWluIiwiZmFtaWx5X25hbWUiOiJUZXN0In0.ov4yxi19x7QNHa3Jz_pNSLVwtZukYhfh-cbfHUOrIKlIuaZDO_QAohmO6Vgv7uiKRFMHp4ntJntJiaH-lxtPAUo7ai4c6hbjnZPYI-yzSwsohfuEh7eG7sgowV2j4DZ8nxJp4WS1ipukilAQhdITKuKGjUuA9vpy5NNh-kzIakJDp8Jh0OYcIncV-WrDSmnvDQPP4grq09kXcg34e6YNWr4LCJgQDkUQ4XAZOLfqNs7cqqJL57kdEN7oEDzczMCYY9baRvflEtxDWMKNSjYW6-9L6mF3aKG1sR0JHogf24CmwuVNohgda2dCqmp57Djsyr7tqdll0fnhEiUBi-h3xQ';
async create(accessToken: string, userRepresentation: UserRepresentation) {
accessToken = accessToken.replace('Bearer ', '');
const basePath = `${process.env.KC_BASE_URL}/auth/admin/realms`;
const config = new Configuration({ basePath, accessToken });
const usersApi = new UsersApi(config);
const requestParams: RealmUsersPostRequest = {
realm: process.env.KC_REALM,
userRepresentation,
};
const usersApi = new UsersApi({ basePath, accessToken });
try {
const registereredUser = await usersApi.realmUsersPost(requestParams);
return registereredUser;
const registereredUser = await usersApi.realmUsersPost(
process.env.KC_REALM,
userRepresentation,
);
// console.log(registereredUser);
try {
const newUserRegistered = await usersApi.realmUsersGet(
process.env.KC_REALM,
true,
userRepresentation.email,
);
if (newUserRegistered.data.length > 0) {
const userFound: UserRepresentation = newUserRegistered.data[0];
console.log(userFound.id);
try {
const credentialRepresentation: CredentialRepresentation = {temporary: false, value: "1234"}
const setUserPassword = await usersApi.realmUsersIdResetPasswordPut(process.env.KC_REALM, userFound.id, credentialRepresentation)
} catch (error) {
}
try {
// Ska nevoje te nsim email.
const sendMailToCreatedUser =
await usersApi.realmUsersIdSendVerifyEmailPut(
process.env.KC_REALM,
userFound.id,
process.env.KC_CLIENT_ID,
'http://localhost:3000',
{
headers: {
'Content-Type': 'application/json',
},
},
);
console.log(sendMailToCreatedUser);
} catch (error) {
console.log(error);
}
}
} catch (error) {
// console.log(error);
return error.data;
}
return registereredUser.data;
// try {
// const sendMail = await usersApi.realmUsersIdSendVerifyEmailPut(process.env.KC_REALM, registereredUser.data.id)
// } catch (error) {
// }
} catch (error) {
return error;
console.log(error);
return error.response.data;
}
}
async findAll() {
return 'Find all Users';
async findAll(accessToken: string) {
accessToken = accessToken.replace('Bearer ', '');
const basePath = `${process.env.KC_BASE_URL}/auth/admin/realms`;
const usersApi = new UsersApi({ basePath, accessToken });
try {
const users = await usersApi.realmUsersGet(process.env.KC_REALM);
return users.data;
} catch (error) {
return error.data;
}
}
findOne(id: number) {