casdoor/web/src/auth/Util.js

110 lines
3.0 KiB
JavaScript
Raw Normal View History

2021-02-14 16:59:08 +08:00
// 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.
2021-03-25 23:22:34 +08:00
import React from "react";
import {Alert, Button, message, Result} from "antd";
2021-02-14 16:59:08 +08:00
export function showMessage(type, text) {
if (type === "success") {
message.success(text);
} else if (type === "error") {
message.error(text);
}
}
2021-02-14 22:49:06 +08:00
2021-03-25 23:22:34 +08:00
export function renderMessage(msg) {
if (msg !== null) {
return (
<div style={{display: "inline"}}>
<Alert
message="Login Error"
showIcon
description={msg}
type="error"
action={
<Button size="small" danger>
Detail
</Button>
}
/>
</div>
)
} else {
return null;
}
}
2021-03-26 21:58:19 +08:00
export function renderMessageLarge(ths, msg) {
2021-03-25 23:22:34 +08:00
if (msg !== null) {
return (
<div style={{display: "inline"}}>
<Result
status="error"
2021-06-09 20:38:46 +08:00
title="There was a problem signing you in.."
2021-03-25 23:22:34 +08:00
subTitle={msg}
extra={[
2021-06-14 23:23:59 +08:00
<Button type="primary" key="back" onClick={() => {
window.history.go(-2);
}}>
Back
2021-03-25 23:22:34 +08:00
</Button>,
2021-06-14 23:23:59 +08:00
// <Button key="home" onClick={() => Setting.goToLinkSoft(ths, "/")}>
// Home
// </Button>,
// <Button type="primary" key="signup" onClick={() => Setting.goToLinkSoft(ths, "/signup")}>
// Sign Up
// </Button>,
2021-03-25 23:22:34 +08:00
]}
>
</Result>
</div>
)
} else {
return null;
}
}
2021-03-21 13:45:55 +08:00
export function getOAuthGetParameters(params) {
const queries = (params !== undefined) ? params : new URLSearchParams(window.location.search);
2021-03-20 16:51:10 +08:00
const clientId = queries.get("client_id");
const responseType = queries.get("response_type");
const redirectUri = queries.get("redirect_uri");
const scope = queries.get("scope");
const state = queries.get("state");
if (clientId === undefined) {
return null;
} else {
return {
clientId: clientId,
responseType: responseType,
redirectUri: redirectUri,
scope: scope,
state: state,
};
}
}
2021-03-21 13:45:55 +08:00
2021-03-21 16:05:00 +08:00
export function getQueryParamsToState(applicationName, providerName, method) {
let query = window.location.search;
query = `${query}&application=${applicationName}&provider=${providerName}&method=${method}`;
2021-04-19 01:14:41 +08:00
if (method === "link") {
query = `${query}&from=${window.location.pathname}`;
}
2021-03-21 13:45:55 +08:00
return btoa(query);
}
export function stateToGetQueryParams(state) {
return atob(state);
}