Skip to content

Instantly share code, notes, and snippets.

@Joshscorp
Joshscorp / server.js
Created July 14, 2022 06:06
OnzAuth server.js Body
const token = authHeader && authHeader.split(' ')[1];
if (token == null) return res.sendStatus(401);
// Verify JWT Token Signature
let decodedToken = jwt.decode(token, { complete: true });
let kid = decodedToken.header.kid;
let clientId = decodedToken.payload.client_id;
// Checks if client id is expected id
if (clientId !== VALID_CLIENT_ID) {
@Joshscorp
Joshscorp / server.js
Created July 14, 2022 06:05
OnzAuth Server.js Express
app.use(cors());
app.use('/adminInfo', async (req, res) => {
// Code Here
});
app.listen(8080, () => console.log('API is running on http://localhost:8080/adminInfo'));
@Joshscorp
Joshscorp / server.js
Created July 14, 2022 06:04
OnzAuth Server.js imports
const express = require('express');
const cors = require('cors');
const app = express();
const jwt = require('jsonwebtoken');
const jwksClient = require('jwks-rsa');
const VALID_CLIENT_ID = 'YOUR CLIENT ID';
@Joshscorp
Joshscorp / App.js
Created July 14, 2022 06:03
OnzAuth App Js UI
return (
<div className="wrapper">
<h1>Application</h1>
<button onClick={() => {
if (isLoggingIn) {
handleCancelLogin();
return;
}
if (isLoggedIn) {
handleLogout();
@Joshscorp
Joshscorp / App.js
Created July 14, 2022 06:01
OnzAuth App JS events
auth.on("closed", () => {
setIsLoggingIn(false);
});
auth.on("authenticated", result => {
setIsLoggedIn(true);
updateUserTokens();
});
auth.on("logged_out", () => {
@Joshscorp
Joshscorp / App.js
Created July 14, 2022 06:00
OnzAuth App Js Update User Tokens
function updateUserTokens() {
const accessToken = auth.getAccessToken();
const accessTokenJwt = auth.getDecodedAccessToken();
const idTokenJwt = auth.getDecodedIDToken();
setUser({
accessToken: accessToken,
accessTokenJwt: accessTokenJwt,
idTokenJwt: idTokenJwt
});
}
@Joshscorp
Joshscorp / App.js
Created July 14, 2022 05:59
OnzAuth App Js Use Effect
useEffect(() => {
if (isLoggedIn) {
updateUserTokens();
navigate('/protected');
}
}, [isLoggedIn, navigate]);
@Joshscorp
Joshscorp / App.js
Last active July 14, 2022 05:58
OnzAuth App.js initialisation
const [ user, setUser ] = useState(null);
const [ isLoggingIn, setIsLoggingIn ] = useState(false);
const [ isLoggedIn, setIsLoggedIn ] = useState(auth.isAuthenticated());
const navigate = useNavigate();
const handleLogin = () => {
setIsLoggingIn(true);
auth.showLogin();
};
const handleLogout = () => auth.logout();
const handleCancelLogin = () => auth.close();
@Joshscorp
Joshscorp / App.js
Created July 14, 2022 05:56
OnzAuth AppJS import
import './App.css';
import React, { useState, useEffect } from 'react';
import { Route, Routes, useNavigate } from 'react-router-dom';
import ProtectedPage from './components/ProtectedPage/ProtectedPage';
import PublicPage from './components/PublicPage/PublicPage';
import ProtectedRoute from './components/ProtectedRoute/ProtectedRoute';
import * as onz from 'onz-auth';
@Joshscorp
Joshscorp / Index.js
Created July 14, 2022 05:55
OnzAuth Index page
import React from 'react';
import ReactDOM from 'react-dom/client';
import './index.css';
import App from './App';
import reportWebVitals from './reportWebVitals';
import { BrowserRouter } from 'react-router-dom';
const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(
<React.StrictMode>