Published
Edited
May 24, 2020
Insert cell
md`
# JWT token extractor
This example show how to extract JWT from request headers using a Ramda
`
Insert cell
R = require("ramda")
Insert cell
extractTokenFromReq = R.compose(
R.nth(1),
R.split(" "),
R.pathOr("", ["headers", "authentication"])
)
Insert cell
exampleRequest = ({"headers":{"authentication":"Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6ImEyYWE5NzM5LWQ3NTMtNGEwZC04N2VlLTYxZjEwMTA1MDI3NyIsInR5cCI6IkpXVCJ9.eyJleHAiOjE1OTAzNDUyMTMsImlhdCI6MTU5MDM0NDMxMywiaXNzIjoiaHR0cDovLzEyNy4wLjAuMTo0NDU1LyIsImp0aSI6ImU1NGZjZmVkLTc2MDEtNDM3Yi1hMzk5LTMxNGQ1MTg0Mzk1MiIsIm5iZiI6MTU5MDM0NDMxMywic2Vzc2lvbiI6eyJhdXRoZW50aWNhdGVkX2F0IjoiMjAyMC0wNS0yNFQxNTo1ODozOC4xNzU5MjA4WiIsImV4cGlyZXNfYXQiOiIyMDIwLTA1LTI0VDE2OjU4OjM4LjE3NDczMzdaIiwiaWRlbnRpdHkiOnsiYWRkcmVzc2VzIjpbeyJleHBpcmVzX2F0IjoiMjAyMC0wNS0yNVQxNTo1ODozNy43Njc3NjgxWiIsImlkIjoiZTljMzYyMWYtYTllMy00OTAwLThjZTQtY2EwZDFlZDBhMjhjIiwidmFsdWUiOiJtYXJjQGZhYWJsZS5jb20iLCJ2ZXJpZmllZCI6ZmFsc2UsInZlcmlmaWVkX2F0IjpudWxsLCJ2aWEiOiJlbWFpbCJ9XSwiaWQiOiI4NWE2N2M1OS03NjU4LTQ2MGYtODQ1My00Yzg4Njk4MWE3MWUiLCJ0cmFpdHMiOnsiZW1haWwiOiJtYXJjQGZhYWJsZS5jb20iLCJ1c2VycG9vbCI6ImZhYWJsZS1kZXYifSwidHJhaXRzX3NjaGVtYV9pZCI6ImRlZmF1bHQiLCJ0cmFpdHNfc2NoZW1hX3VybCI6Imh0dHA6Ly9hLmZhYWJsZS5pbnRlcm5hbDo0NDU1Ly5vcnkva3JhdG9zL3B1YmxpYy9zY2hlbWFzL2RlZmF1bHQifSwiaXNzdWVkX2F0IjoiMjAyMC0wNS0yNFQxNTo1ODozOC4xNzU2NTY3WiIsInNpZCI6IjkxNGU5ZjM2LWJkZjktNDZlZS1iMGQyLTg5YmNiNjU2ZTVmNSJ9LCJzdWIiOiI4NWE2N2M1OS03NjU4LTQ2MGYtODQ1My00Yzg4Njk4MWE3MWUifQ.jjc58-eBso3bqnFznWK3OYBYufYWlzongUqZrpmYhCr9PRr2Oup4HQEqsmS0ww9lMsrzX8pT0Vcdi2GyNK9IMX42ujt2P_IOmzFpNURICU7SatLGzNptFekep6PNiBgMa9vyK8-zflw7XxR4YWKPG9CV3MlWd4ufIeNKUjy-d8m-Jnw7NfXUrZAqUvuHr-QO8gmDccJD8_9f9wbNwEwJDM3Fat4-73RvvE1PQCAojV6bPhFxzENfiFsiB0wTJ7kIBeYmUjiwPIgpgy0K5UWvdIHk6tjmbJA2MXK1OrawNoPE5_N3Zd7p-h4lwtmAeMd_nG_xBhoFKz6HJqOsiGoHPw"}})
Insert cell
//jwt = require("jsonwebtoken@8.5.1/decode.js")
Insert cell
jwt = require("https://bundle.run/jsonwebtoken@8.5.1")
Insert cell
jwt.decode(extractTokenFromReq(exampleRequest))
Insert cell

Purpose-built for displays of data

Observable is your go-to platform for exploring data and creating expressive data visualizations. Use reactive JavaScript notebooks for prototyping and a collaborative canvas for visual data exploration and dashboard creation.
Learn more