2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2019 AT&T Intellectual Property. All rights
7 * ================================================================================
8 * Licensed under the Apache License, Version 2.0 (the "License");
9 * you may not use this file except in compliance with the License.
10 * You may obtain a copy of the License at
12 * http://www.apache.org/licenses/LICENSE-2.0
14 * Unless required by applicable law or agreed to in writing, software
15 * distributed under the License is distributed on an "AS IS" BASIS,
16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 * See the License for the specific language governing permissions and
18 * limitations under the License.
19 * ============LICENSE_END============================================
20 * ===================================================================
28 function login(username, password) {
32 if (username && password) {
35 credentials: 'include',
37 'Authorization': "Basic " + new Buffer(username + ":" + password).toString("base64")
42 return fetch(`/restservices/clds/v1/user/getUser`, options)
43 .then(response => handleResponse(response))
44 .then(function(data) {
45 localStorage.setItem('user', data);
50 function handleResponse(response) {
51 if (!response.ok || response.redirected === true) {
52 if (response.status === 401 || response.status === 500 || response.redirected === true) {
53 if (localStorage.getItem('tryBasicAuth')) {
54 // login failed, go to invalud login page
55 localStorage.removeItem('user');
57 // try to login with username and password
58 localStorage.setItem('tryBasicAuth', true);
61 const error = response.statusText;
62 return Promise.reject(error);
64 return response.text();
66 export default LoopService;