1
0
mirror of https://github.com/labstack/echo.git synced 2025-01-01 22:09:21 +02:00
echo/website/content/recipes/jwt.md
Vishal Rana 73110004ef doc: updated, recipe: auto tls
Signed-off-by: Vishal Rana <vr@labstack.com>
2016-11-28 20:34:29 -08:00

70 lines
1.3 KiB
Markdown

+++
title = "JWT Example"
description = "JWT example for Echo"
[menu.main]
name = "JWT"
identifier = "recipe-jwt"
parent = "recipes"
weight = 11
+++
- JWT authentication using HS256 algorithm.
- JWT is retrieved from `Authorization` request header.
## Server using Map claims
`server.go`
{{< embed "jwt/map-claims/server.go" >}}
## Server using custom claims
`server.go`
{{< embed "jwt/custom-claims/server.go" >}}
## Client
`curl`
### Login
Login using username and password to retrieve a token.
```sh
curl -X POST -d 'username=jon' -d 'password=shhh!' localhost:1323/login
```
*Response*
```js
{
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE0NjE5NTcxMzZ9.RB3arc4-OyzASAaUhC2W3ReWaXAt_z2Fd3BN4aWTgEY"
}
```
### Request
Request a restricted resource using the token in `Authorization` request header.
```sh
curl localhost:1323/restricted -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE0NjE5NTcxMzZ9.RB3arc4-OyzASAaUhC2W3ReWaXAt_z2Fd3BN4aWTgEY"
```
*Response*
```
Welcome Jon Snow!
```
## Source Code
- [With default Map claims]({{< source "jwt/map-claims" >}})
- [With custom claims]({{< source "jwt/custom-claims" >}})
## Maintainers
- [vishr](https://github.com/vishr)
- [axdg](https://github.com/axdg)
- [matcornic](https://github.com/matcornic)