mirror of
https://github.com/ditkrg/AuthorizationServerDemos.git
synced 2026-01-22 22:47:02 +00:00
53 lines
1.3 KiB
JavaScript
53 lines
1.3 KiB
JavaScript
import { UserManager } from "oidc-client";
|
|
import { storeUserError, storeUser } from "../actions/authActions";
|
|
|
|
const config = {
|
|
authority: "http://localhost:10000",
|
|
client_id: "traffic-police-react-app",
|
|
redirect_uri: "http://localhost:3000/signin-oidc",
|
|
response_type: "code",
|
|
scope: "openid profile traffic-police-api",
|
|
post_logout_redirect_uri: "http://localhost:3000"
|
|
};
|
|
|
|
const userManager = new UserManager(config);
|
|
|
|
export async function loadUserFromStorage(store) {
|
|
try {
|
|
let user = await userManager.getUser();
|
|
if (!user) {
|
|
return store.dispatch(storeUserError());
|
|
}
|
|
store.dispatch(storeUser(user));
|
|
} catch (e) {
|
|
console.error(`User not found: ${e}`);
|
|
store.dispatch(storeUserError());
|
|
}
|
|
}
|
|
|
|
export function signinRedirect() {
|
|
return userManager.signinRedirect();
|
|
}
|
|
|
|
export function signinRedirectCallback() {
|
|
return userManager.signinRedirectCallback();
|
|
}
|
|
|
|
export async function signoutRedirect() {
|
|
var user = await userManager.getUser();
|
|
let id_token = null;
|
|
if (user) id_token = user.id_token;
|
|
|
|
userManager.clearStaleState();
|
|
userManager.removeUser();
|
|
return userManager.signoutRedirect({ id_token_hint: id_token });
|
|
}
|
|
|
|
export function signoutRedirectCallback() {
|
|
userManager.clearStaleState();
|
|
userManager.removeUser();
|
|
return userManager.signoutRedirectCallback();
|
|
}
|
|
|
|
export default userManager;
|