casdoor/web/src/auth/AuthBackend.js
2021-08-01 14:27:53 +08:00

79 lines
2.3 KiB
JavaScript

// Copyright 2021 The casbin Authors. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
import {authConfig} from "./Auth";
export function getAccount(query) {
return fetch(`${authConfig.serverUrl}/api/get-account${query}`, {
method: 'GET',
credentials: 'include'
}).then(res => res.json());
}
export function signup(values) {
return fetch(`${authConfig.serverUrl}/api/signup`, {
method: 'POST',
credentials: "include",
body: JSON.stringify(values),
}).then(res => res.json());
}
export function getEmailAndPhone(values) {
return fetch(`${authConfig.serverUrl}/api/get-email-and-phone`, {
method: "POST",
credentials: "include",
body: JSON.stringify(values),
}).then((res) => res.json());
}
function oAuthParamsToQuery(oAuthParams) {
// login
if (oAuthParams === null) {
return "";
}
// code
return `?clientId=${oAuthParams.clientId}&responseType=${oAuthParams.responseType}&redirectUri=${oAuthParams.redirectUri}&scope=${oAuthParams.scope}&state=${oAuthParams.state}`;
}
export function getApplicationLogin(oAuthParams) {
return fetch(`${authConfig.serverUrl}/api/get-app-login${oAuthParamsToQuery(oAuthParams)}`, {
method: 'GET',
credentials: 'include',
}).then(res => res.json());
}
export function login(values, oAuthParams) {
return fetch(`${authConfig.serverUrl}/api/login${oAuthParamsToQuery(oAuthParams)}`, {
method: 'POST',
credentials: "include",
body: JSON.stringify(values),
}).then(res => res.json());
}
export function logout() {
return fetch(`${authConfig.serverUrl}/api/logout`, {
method: 'POST',
credentials: "include",
}).then(res => res.json());
}
export function unlink(values) {
return fetch(`${authConfig.serverUrl}/api/unlink`, {
method: 'POST',
credentials: "include",
body: JSON.stringify(values),
}).then(res => res.json());
}