diff --git a/NodeApp/src/managers/DojoBackendManager.ts b/NodeApp/src/managers/DojoBackendManager.ts
index 64c56cb34e1e25cc4b0fb3198d09d94e4b5993dd..12cc16b6822a4414fe2f01408cf58f3627624b19 100644
--- a/NodeApp/src/managers/DojoBackendManager.ts
+++ b/NodeApp/src/managers/DojoBackendManager.ts
@@ -7,6 +7,8 @@ import ClientsSharedConfig   from '../sharedByClients/config/ClientsSharedConfig
 import Assignment            from '../sharedByClients/models/Assignment';
 import DojoBackendResponse   from '../shared/types/Dojo/DojoBackendResponse';
 import Exercise              from '../sharedByClients/models/Exercise';
+import GitlabToken           from '../shared/types/Gitlab/GitlabToken';
+import User                  from '../sharedByClients/models/User';
 
 
 class DojoBackendManager {
@@ -14,6 +16,26 @@ class DojoBackendManager {
         return `${ ClientsSharedConfig.apiURL }${ route }`;
     }
 
+
+    public async login(gitlabTokens: GitlabToken): Promise<User | undefined> {
+        try {
+            return (await axios.post<DojoBackendResponse<User>>(this.getApiUrl(ApiRoute.LOGIN), {
+                accessToken : gitlabTokens.access_token,
+                refreshToken: gitlabTokens.refresh_token
+            })).data.data;
+        } catch ( error ) {
+            return undefined;
+        }
+    }
+
+
+    public async refreshTokens(refreshToken: string): Promise<GitlabToken> {
+        return (await axios.post<DojoBackendResponse<GitlabToken>>(this.getApiUrl(ApiRoute.REFRESH_TOKENS), {
+            refreshToken: refreshToken
+        })).data.data;
+    }
+
+
     public async getAssignment(nameOrUrl: string): Promise<Assignment | undefined> {
         try {
             return (await axios.get<DojoBackendResponse<Assignment>>(this.getApiUrl(ApiRoute.ASSIGNMENT_GET).replace('{{nameOrUrl}}', encodeURIComponent(nameOrUrl)))).data.data;