Use compute auth service and fix static code analyzer warnings (#15)
* Clean up formatting * Use new compute_auth service Implment SSO Implement token refresh Clean up unit tests * Fix unit tests * Fix auth test Fix warnings * Update default settings for compute_auth
This commit is contained in:
@@ -1,16 +1,21 @@
|
||||
const AUTH_URL = process.env.REACT_APP_AUTH_SERVICE_URL || "https://gw-dev.fiskerdps.com/compute_auth";
|
||||
const CALLBACK_URL = process.env.REACT_APP_AUTH_CALLBACK_URL || "";
|
||||
|
||||
let signInResponse = {};
|
||||
let signUpResponse = {};
|
||||
let verifyResponse = {};
|
||||
let refreshResponse = {};
|
||||
|
||||
const logResponse = (response) => {
|
||||
return response;
|
||||
};
|
||||
|
||||
export default {
|
||||
ssoAuthorize: () => `${AUTH_URL}/authorize?redirect=${CALLBACK_URL}`,
|
||||
ssoLogout: () => `${AUTH_URL}/logout?redirect=${CALLBACK_URL}`,
|
||||
signIn: async (username, password) => logResponse(signInResponse),
|
||||
signUp: async (username, password) => logResponse(signUpResponse),
|
||||
verify: async (accessToken) => logResponse(verifyResponse),
|
||||
verify: async (idToken) => logResponse(verifyResponse),
|
||||
refresh: async (refreshToken) => logResponse(refreshResponse),
|
||||
setSignInResponse: (value) => { signInResponse = value; },
|
||||
setSignUpResponse: (value) => { signUpResponse = value; },
|
||||
setVerifyResponse: (value) => { verifyResponse = value; },
|
||||
setRefreshResponse: (value) => { refreshResponse = value; },
|
||||
}
|
||||
@@ -11,7 +11,7 @@ export const getCancelToken = () => {
|
||||
return issuedCancelToken;
|
||||
}
|
||||
|
||||
export const uploadFile = async (file, token, onProgress, cancelToken, hash) => {
|
||||
export const uploadFile = async (file, token, onProgress, cancelToken) => {
|
||||
if (!uploadFileDelay) return uploadFileResponse;
|
||||
onProgress(50);
|
||||
await delay(10000);
|
||||
|
||||
@@ -1,34 +1,34 @@
|
||||
const AUTH_URL = process.env.REACT_APP_AUTH_SERVICE_URL || "https://dev-auth.fiskerdps.com";
|
||||
const AUTH_URL = process.env.REACT_APP_AUTH_SERVICE_URL || "https://gw-dev.fiskerdps.com/compute_auth";
|
||||
const CALLBACK_URL = process.env.REACT_APP_AUTH_CALLBACK_URL || "https://dev-ota-admin.fiskerdps.com";
|
||||
|
||||
const auth = {
|
||||
signIn: (username, password) => fetch(`${AUTH_URL}/auth/login`, {
|
||||
ssoAuthorize: () => `${AUTH_URL}/authorize?redirect=${CALLBACK_URL}`,
|
||||
ssoLogout: () => `${AUTH_URL}/logout?redirect=${CALLBACK_URL}`,
|
||||
signIn: (code) => fetch(`${AUTH_URL}/token`, {
|
||||
method: "POST",
|
||||
headers: {
|
||||
"Content-Type": "application/json"
|
||||
},
|
||||
body: JSON.stringify({
|
||||
username,
|
||||
password,
|
||||
code,
|
||||
redirect: CALLBACK_URL,
|
||||
})
|
||||
}).then((response) => response.json()),
|
||||
|
||||
signUp: (username, password) => fetch(`${AUTH_URL}/auth/register`, {
|
||||
verify: (idToken) => fetch(`${AUTH_URL}/verify`, {
|
||||
method: "POST",
|
||||
headers: {
|
||||
"Content-Type": "application/json"
|
||||
},
|
||||
body: JSON.stringify({
|
||||
username,
|
||||
password,
|
||||
})
|
||||
body: JSON.stringify({ token: idToken })
|
||||
}).then((response) => response.json()),
|
||||
|
||||
verify: (accessToken) => fetch(`${AUTH_URL}/auth/verify`, {
|
||||
refresh: (refreshToken) => fetch(`${AUTH_URL}/refresh`, {
|
||||
method: "POST",
|
||||
headers: {
|
||||
"Content-Type": "application/json"
|
||||
},
|
||||
body: JSON.stringify({ token: accessToken })
|
||||
body: JSON.stringify({ refresh_token: refreshToken })
|
||||
}).then((response) => response.json()),
|
||||
};
|
||||
|
||||
|
||||
23
src/services/auth.test.js
Normal file
23
src/services/auth.test.js
Normal file
@@ -0,0 +1,23 @@
|
||||
import auth from "./auth";
|
||||
|
||||
const testAuthURL = (url, endpoint) => {
|
||||
const u = new URL(url);
|
||||
const path = u.pathname.split("/");
|
||||
|
||||
expect(u.protocol).toMatch(/^http/);
|
||||
expect(u.host).toBeTruthy();
|
||||
expect(path[path.length - 1]).toEqual(endpoint);
|
||||
expect(u.searchParams.get("redirect")).toBeTruthy();
|
||||
};
|
||||
|
||||
describe("Auth service", () => {
|
||||
describe("Auth URLs", () => {
|
||||
it("Authorize URL", () => {
|
||||
testAuthURL(auth.ssoAuthorize(), "authorize");
|
||||
});
|
||||
|
||||
it("Logout URL", () => {
|
||||
testAuthURL(auth.ssoLogout(), "logout");
|
||||
});
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user