This week I had the opportunity to leave the sh
Monthly Archives: March 2025
God’s strength in me
“Thank you for sharing with us today, I really enjoyed listening – you spoke so well” – It’s great to receive compliments like this, but even better still it’s great to see the ways in which God has helped me to grow over the last two years – and one of those is public speaking. When I left home two years ago standing on stage was a painful experience – I would break out in a sweat and stammer over my words, looking at my notes for some sort of help. During my time on board I found myself many times being asked to stand on a stage in a church and tell people about the ship or tell them about what God has done in my life. I won’t lie, this terrified me! But I soon realised that His strength is perfect when my strength is gone, so I said to God that I would do my best but He would have to get me through it, and I managed. Now after so many experiences like this, it has become much easier to trust Him. Last night I was speaking at Erina Community Baptist Church and as it was coming time for me to speak, I felt God challenge me to not just tell people what *I* had done, but to tell them what He had done through me. So my notes weren’t as helpful and it didn’t sound very practiced, but in the end God gave me the right words to encourage people that God doesn’t call the qualified, he qualifies the called – and also that He will reveal to us the next step at the right time, not sooner.
So after speaking at Erina and also at Green Point Christian College last Wednesday and at Grace Community Church two weeks ago, this completes my thanksgiving speaking tour. Early next year I will be visiting Churches to tell people what God has in store for me next at OMNIvision. I look forward to that.
Creating a JWT secured React app and Kotlin server Part 4: React
In the last blog, I finished off my authentication server in Kotlin. Now it’s time to write a web application to connect to the authentication server to get a token, ultimately to use to consume further content. For this project I’ve chosen to go with React. Introduced by Facebook in 2013, it has steadily gained popularity over the years to the point where it feels like everyone is in React. I’ve had some history with React myself at work, as well as React Native, the bridge to running React on mobile devices natively.
React has a pretty neat way to start a new application called “auth-demo-frontend” over at https://reactjs.org/tutorial/tutorial.html
npx create-react-app auth-demo-frontend
This is going to set you up with all the packages you need and a little sample application that you can modify.
Next we want to install react-router so we can navigate around our application with URLs and bootstrap so we can have a consistent look/feel
yarn add react-router bootstrap
Then we can add a navigation bar to our app.js
And create some components:
import React from 'react'; import useGlobal from "../store"; import queryString from 'query-string'; import { oauthConfig } from '../Config/constants'; function Login(props) { const [globalState, globalActions] = useGlobal(); const params = queryString.parse(props.location.search); const { code } = params; const { security: { user, state, status, error }} = globalState; const { authUrl, clientId } = oauthConfig; switch (status) { case "authFailure": if (!code) { window.location.href = "/login"; } return (
) case “authenticated”: return (
) default: //nothing } if (code) { globalActions.getToken(code, state); return (
) } else { window.location.href=`${authUrl}?state=${state}&clientId=${clientId}`; return (
) } } export default Login;