auth controller
This commit is contained in:
parent
99bcc77abf
commit
2eb34adc7c
|
|
@ -67,5 +67,3 @@ report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
|
||||||
package-lock.json
|
package-lock.json
|
||||||
|
|
||||||
*.jar
|
*.jar
|
||||||
gitea
|
|
||||||
auth
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,40 @@
|
||||||
|
import { Controller, Get, Param, Put } from '@nestjs/common';
|
||||||
|
import { AuthService } from './auth.service.js';
|
||||||
|
|
||||||
|
@Controller('auth')
|
||||||
|
export class AuthController {
|
||||||
|
constructor(private readonly authService: AuthService) {}
|
||||||
|
|
||||||
|
@Get()
|
||||||
|
getAccessToken(): any {
|
||||||
|
return this.authService.getAccessToken();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Get('users')
|
||||||
|
getUsers(): any {
|
||||||
|
return this.authService.getUsers();
|
||||||
|
}
|
||||||
|
@Get('user/:userid')
|
||||||
|
getUser(@Param('userid') userId: string): any {
|
||||||
|
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
|
||||||
|
getLastLogin(@Param('userid') userId: string): any {
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,17 @@
|
||||||
|
import { Module } from '@nestjs/common';
|
||||||
|
import { MailerModule } from '@nestjs-modules/mailer';
|
||||||
|
import path, { join } from 'path';
|
||||||
|
import { HandlebarsAdapter } from '@nestjs-modules/mailer/dist/adapters/handlebars.adapter.js';
|
||||||
|
import { fileURLToPath } from 'url';
|
||||||
|
import { AuthService } from './auth.service.js';
|
||||||
|
import { AuthController } from './auth.controller.js';
|
||||||
|
const __filename = fileURLToPath(import.meta.url);
|
||||||
|
const __dirname = path.dirname(__filename);
|
||||||
|
@Module({
|
||||||
|
imports: [
|
||||||
|
],
|
||||||
|
providers: [AuthService],
|
||||||
|
controllers: [AuthController],
|
||||||
|
exports:[AuthService]
|
||||||
|
})
|
||||||
|
export class AuthModule {}
|
||||||
|
|
@ -0,0 +1,107 @@
|
||||||
|
import { Injectable } from '@nestjs/common';
|
||||||
|
// import got from 'got';
|
||||||
|
import ky from 'ky';
|
||||||
|
import urlcat from 'urlcat';
|
||||||
|
|
||||||
|
@Injectable()
|
||||||
|
export class AuthService {
|
||||||
|
|
||||||
|
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 {
|
||||||
|
const params = new URLSearchParams();
|
||||||
|
params.append('grant_type', 'password');
|
||||||
|
params.append('username', process.env.user);
|
||||||
|
params.append('password', process.env.password);
|
||||||
|
const URL = `${process.env.host}${process.env.tokenURL}`;
|
||||||
|
|
||||||
|
const response = await ky.post(URL, {
|
||||||
|
body: params.toString(),
|
||||||
|
headers: {
|
||||||
|
'Content-Type': 'application/x-www-form-urlencoded',
|
||||||
|
'Authorization':'Basic YWRtaW4tY2xpOnE0RmJnazFkd0NaelFQZmt5VzhhM3NnckV5UHZlRUY3'
|
||||||
|
},
|
||||||
|
}).json();
|
||||||
|
return (<any>response).access_token;
|
||||||
|
} catch (error) {
|
||||||
|
if (error.name === 'HTTPError') {
|
||||||
|
const errorJson = await error.response.json();
|
||||||
|
console.error('Fehlerantwort vom Server:', errorJson);
|
||||||
|
} else {
|
||||||
|
console.error('Allgemeiner Fehler:', error);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public async getUsers(){
|
||||||
|
const token = await this.getAccessToken();
|
||||||
|
const URL = `${process.env.host}${process.env.usersURL}`;
|
||||||
|
const response = await ky.get(URL, {
|
||||||
|
headers: {
|
||||||
|
'Content-Type': 'application/x-www-form-urlencoded',
|
||||||
|
'Authorization':`Bearer ${token}`
|
||||||
|
},
|
||||||
|
}).json();
|
||||||
|
return response
|
||||||
|
}
|
||||||
|
public async getUser(userid:string){
|
||||||
|
const token = await this.getAccessToken();
|
||||||
|
const URL = urlcat(process.env.host,process.env.userURL,{userid})
|
||||||
|
const response = await ky.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.get(URL, {
|
||||||
|
headers: {
|
||||||
|
'Content-Type': 'application/x-www-form-urlencoded',
|
||||||
|
'Authorization':`Bearer ${token}`
|
||||||
|
},
|
||||||
|
}).json();
|
||||||
|
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){
|
||||||
|
const token = await this.getAccessToken();
|
||||||
|
const URL = urlcat(process.env.host,process.env.lastLoginURL,{userid})
|
||||||
|
const response = await ky.get(URL, {
|
||||||
|
headers: {
|
||||||
|
'Content-Type': 'application/x-www-form-urlencoded',
|
||||||
|
'Authorization':`Bearer ${token}`
|
||||||
|
},
|
||||||
|
}).json();
|
||||||
|
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