Auth Methoden überarbeitet
This commit is contained in:
parent
74d5f92aba
commit
f66badbfb1
|
|
@ -1,4 +1,4 @@
|
||||||
import { Controller, Get, Param, Put } from '@nestjs/common';
|
import { Controller, Get, Param } from '@nestjs/common';
|
||||||
import { AuthService } from './auth.service.js';
|
import { AuthService } from './auth.service.js';
|
||||||
|
|
||||||
@Controller('auth')
|
@Controller('auth')
|
||||||
|
|
@ -18,23 +18,9 @@ export class AuthController {
|
||||||
getUser(@Param('userid') userId: string): any {
|
getUser(@Param('userid') userId: string): any {
|
||||||
return this.authService.getUser(userId);
|
return this.authService.getUser(userId);
|
||||||
}
|
}
|
||||||
@Get('groups')
|
|
||||||
getGroups(): any {
|
|
||||||
return this.authService.getGroups();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Get('user/:userid/groups') //e0811669-c7eb-4e5e-a699-e8334d5c5b01 -> aknuth
|
|
||||||
getGroupsForUsers(@Param('userid') userId: string): any {
|
|
||||||
return this.authService.getGroupsForUser(userId);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Get('user/:userid/lastlogin') //e0811669-c7eb-4e5e-a699-e8334d5c5b01 -> aknuth
|
@Get('user/:userid/lastlogin') //e0811669-c7eb-4e5e-a699-e8334d5c5b01 -> aknuth
|
||||||
getLastLogin(@Param('userid') userId: string): any {
|
getLastLogin(@Param('userid') userId: string): any {
|
||||||
return this.authService.getLastLogin(userId);
|
return this.authService.getLastLogin(userId);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Put('user/:userid/group/:groupid') //e0811669-c7eb-4e5e-a699-e8334d5c5b01 -> aknuth //
|
|
||||||
addUser2Group(@Param('userid') userId: string,@Param('groupid') groupId: string): any {
|
|
||||||
return this.authService.addUser2Group(userId,groupId);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -6,24 +6,19 @@ import urlcat from 'urlcat';
|
||||||
@Injectable()
|
@Injectable()
|
||||||
export class AuthService {
|
export class AuthService {
|
||||||
public async getAccessToken() {
|
public async getAccessToken() {
|
||||||
const form = new FormData();
|
|
||||||
form.append('grant_type', 'password');
|
|
||||||
form.append('username', process.env.user);
|
|
||||||
form.append('password', process.env.password);
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const params = new URLSearchParams();
|
const params = new URLSearchParams();
|
||||||
params.append('grant_type', 'password');
|
params.append('grant_type', 'password');
|
||||||
params.append('username', process.env.user);
|
params.append('username', process.env.KEYCLOAK_ADMIN_USER);
|
||||||
params.append('password', process.env.password);
|
params.append('password', process.env.KEYCLOAK_ADMIN_PASSWORD);
|
||||||
const URL = `${process.env.host}${process.env.tokenURL}`;
|
const URL = `${process.env.KEYCLOAK_HOST}${process.env.KEYCLOAK_TOKEN_URL}`;
|
||||||
|
|
||||||
const response = await ky
|
const response = await ky
|
||||||
.post(URL, {
|
.post(URL, {
|
||||||
body: params.toString(),
|
body: params.toString(),
|
||||||
headers: {
|
headers: {
|
||||||
'Content-Type': 'application/x-www-form-urlencoded',
|
'Content-Type': 'application/x-www-form-urlencoded',
|
||||||
Authorization: 'Basic YWRtaW4tY2xpOnE0RmJnazFkd0NaelFQZmt5VzhhM3NnckV5UHZlRUY3',
|
Authorization: process.env.KEYCLOAK_ADMIN_TOKEN,
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
.json();
|
.json();
|
||||||
|
|
@ -40,7 +35,7 @@ export class AuthService {
|
||||||
|
|
||||||
public async getUsers(): Promise<KeycloakUser[]> {
|
public async getUsers(): Promise<KeycloakUser[]> {
|
||||||
const token = await this.getAccessToken();
|
const token = await this.getAccessToken();
|
||||||
const URL = `${process.env.host}${process.env.usersURL}`;
|
const URL = `${process.env.KEYCLOAK_HOST}${process.env.KEYCLOAK_ADMIN_REALM}${process.env.REALM}${process.env.KEYCLOAK_USERS_URL}`;
|
||||||
const response = await ky
|
const response = await ky
|
||||||
.get(URL, {
|
.get(URL, {
|
||||||
headers: {
|
headers: {
|
||||||
|
|
@ -53,20 +48,8 @@ export class AuthService {
|
||||||
}
|
}
|
||||||
public async getUser(userid: string) {
|
public async getUser(userid: string) {
|
||||||
const token = await this.getAccessToken();
|
const token = await this.getAccessToken();
|
||||||
const URL = urlcat(process.env.host, process.env.userURL, { userid });
|
const URLPATH = `${process.env.KEYCLOAK_ADMIN_REALM}${process.env.REALM}${process.env.KEYCLOAK_USER_URL}`;
|
||||||
const response = await ky
|
const URL = urlcat(process.env.KEYCLOAK_HOST, URLPATH, { userid });
|
||||||
.get(URL, {
|
|
||||||
headers: {
|
|
||||||
'Content-Type': 'application/x-www-form-urlencoded',
|
|
||||||
Authorization: `Bearer ${token}`,
|
|
||||||
},
|
|
||||||
})
|
|
||||||
.json();
|
|
||||||
return response;
|
|
||||||
}
|
|
||||||
public async getGroups() {
|
|
||||||
const token = await this.getAccessToken();
|
|
||||||
const URL = `${process.env.host}${process.env.groupsURL}`;
|
|
||||||
const response = await ky
|
const response = await ky
|
||||||
.get(URL, {
|
.get(URL, {
|
||||||
headers: {
|
headers: {
|
||||||
|
|
@ -78,22 +61,10 @@ export class AuthService {
|
||||||
return response;
|
return response;
|
||||||
}
|
}
|
||||||
|
|
||||||
public async getGroupsForUser(userid: string) {
|
|
||||||
const token = await this.getAccessToken();
|
|
||||||
const URL = urlcat(process.env.host, process.env.userGroupsURL, { userid });
|
|
||||||
const response = await ky
|
|
||||||
.get(URL, {
|
|
||||||
headers: {
|
|
||||||
'Content-Type': 'application/x-www-form-urlencoded',
|
|
||||||
Authorization: `Bearer ${token}`,
|
|
||||||
},
|
|
||||||
})
|
|
||||||
.json();
|
|
||||||
return response;
|
|
||||||
}
|
|
||||||
public async getLastLogin(userid: string) {
|
public async getLastLogin(userid: string) {
|
||||||
const token = await this.getAccessToken();
|
const token = await this.getAccessToken();
|
||||||
const URL = urlcat(process.env.host, process.env.lastLoginURL, { userid });
|
const URLPATH = `${process.env.KEYCLOAK_ADMIN_REALM}${process.env.REALM}${process.env.KEYCLOAK_LASTLOGIN_URL}`;
|
||||||
|
const URL = urlcat(process.env.KEYCLOAK_HOST, URLPATH, { userid });
|
||||||
const response = await ky
|
const response = await ky
|
||||||
.get(URL, {
|
.get(URL, {
|
||||||
headers: {
|
headers: {
|
||||||
|
|
@ -104,17 +75,4 @@ export class AuthService {
|
||||||
.json();
|
.json();
|
||||||
return response;
|
return response;
|
||||||
}
|
}
|
||||||
public async addUser2Group(userid: string, groupid: string) {
|
|
||||||
const token = await this.getAccessToken();
|
|
||||||
const URL = urlcat(process.env.host, process.env.addUser2GroupURL, { userid, groupid });
|
|
||||||
const response = await ky
|
|
||||||
.put(URL, {
|
|
||||||
headers: {
|
|
||||||
'Content-Type': 'application/x-www-form-urlencoded',
|
|
||||||
Authorization: `Bearer ${token}`,
|
|
||||||
},
|
|
||||||
})
|
|
||||||
.json();
|
|
||||||
return response;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue