webapi jwt example
v1.0
git clone https://github.com/GLEBR1K/webapi-jwt-example jwt
cd jwtWebAPI_Example
dotnet run
Try to register with POST /api/register
and get JWT token:
> curl http://localhost:8080/api/register -H 'Content-type: application/json' -d '{ Email: "$EMAIL", Password: "$PASSWORD" }'
{"succeeded":true,"token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJlbWFpbEBleGFtcGxlLmxvY2FsIiwianRpIjoiNGE0NzQzYWMtZDU5Yi00NjI3LThhMmEtN2JkZjAxMTQyODk4IiwiaHR0cDovL3NjaGVtYXMueG1sc29hcC5vcmcvd3MvMjAwNS8wNS9pZGVudGl0eS9jbGFpbXMvbmFtZWlkZW50aWZpZXIiOiJkYjVmNWEwMC0xYzNiLTQ1MDYtOTE3YS02NWJlODJmYTg2MmQiLCJleHAiOjE1Mjk2OTgyNjIsImlzcyI6Imh0dHA6Ly9sb2NhbGhvc3Q6NTkxMjQvIiwiYXVkIjoiaHR0cDovL2xvY2FsaG9zdDo1OTEyNC8ifQ.ZZreutgH3FgKy173cwiBj9jRVZPD9_gdoYLwgpDkST4"}
Try to login with POST /api/login
and get JWT token.
> curl http://localhost:8080/api/login -H 'Content-type: application/json' -d '{ Email: "$EMAIL", Password: "$PASSWORD" }'
{"succeeded":true,"token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJlbWFpbEBleGFtcGxlLmxvY2FsIiwianRpIjoiNGE0NzQzYWMtZDU5Yi00NjI3LThhMmEtN2JkZjAxMTQyODk4IiwiaHR0cDovL3NjaGVtYXMueG1sc29hcC5vcmcvd3MvMjAwNS8wNS9pZGVudGl0eS9jbGFpbXMvbmFtZWlkZW50aWZpZXIiOiJkYjVmNWEwMC0xYzNiLTQ1MDYtOTE3YS02NWJlODJmYTg2MmQiLCJleHAiOjE1Mjk2OTgyNjIsImlzcyI6Imh0dHA6Ly9sb2NhbGhvc3Q6NTkxMjQvIiwiYXVkIjoiaHR0cDovL2xvY2FsaG9zdDo1OTEyNC8ifQ.ZZreutgH3FgKy173cwiBj9jRVZPD9_gdoYLwgpDkST4"}
Get access to public page with GET /api/public
, which returns random value.
> curl http://localhost:8080/api/public
{"value":737}
Get access to protected page with GET /api/protected
, which needs JWT token.
> curl http://localhost:8080/api/protected -H 'Authorization: Bearer $TOKEN'
{"value":769}
You can test app using command line (like curl
) or other apps (like Postman
).
Import collection (from TestsPostmanCollection.json
) and global variables (from TestsPostmanVariables.json
) into Postman.
Edit Email
, Password
and Token
in global variables panel.
Now you can send example requests from Postman.