// for a full working demo of Netlify Identity + Functions, see https://netlify-gotrue-in-react.netlify.com/ const fetch = require('node-fetch') const handler = async function (event, context) { if (!context.clientContext && !context.clientContext.identity) { return { statusCode: 500, // Could be a custom message or object i.e. JSON.stringify(err) body: JSON.stringify({ msg: 'No identity instance detected. Did you enable it?', }), } } const { identity, user } = context.clientContext console.log(user) try { const response = await fetch('https://api.chucknorris.io/jokes/random') if (!response.ok) { // NOT res.status >= 200 && res.status < 300 return { statusCode: response.status, body: response.statusText } } const data = await response.json() return { statusCode: 200, body: JSON.stringify({ identity, user, msg: data.value }), } } catch (error) { // output to netlify function log console.log(error) return { statusCode: 500, // Could be a custom message or object i.e. JSON.stringify(err) body: JSON.stringify({ msg: error.message }), } } } module.exports = { handler }
Preview:
downloadDownload PNG
downloadDownload JPEG
downloadDownload SVG
Tip: You can change the style, width & colours of the snippet with the inspect tool before clicking Download!
Click to optimize width for Twitter