webapi jwt example
v1.0
git clone https://github.com/GLEBR1K/webapi-jwt-example jwt
cd jwt W ebAPI_Example
dotnet run
POST /api/register
で登録して JWT トークンを取得してみます。
> curl http://localhost:8080/api/register -H ' Content-type: application/json ' -d ' { Email: "$EMAIL", Password: "$PASSWORD" } '
{ " succeeded " :true, " token " : " eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJlbWFpbEBleGFtcGxlLmxvY2FsIiwianRpIjoiNGE0NzQzYWMtZDU5Yi00NjI3LThhMmEtN2JkZjAxMTQyODk4IiwiaHR0cDovL3NjaGVtYXMueG1sc29hcC5vcmcvd3MvMjAwNS8wNS9pZGVudGl0eS9jbGFpbXMvbmFtZWlkZW50aWZpZXIiOiJkYjVmNWEwMC0xYzNiLTQ1MDYtOTE3YS02NWJlODJmYTg2MmQiLCJleHAiOjE1Mjk2OTgyNjIsImlzcyI6Imh0dHA6Ly9sb2NhbGhvc3Q6NTkxMjQvIiwiYXVkIjoiaHR0cDovL2xvY2FsaG9zdDo1OTEyNC8ifQ.ZZreutgH3FgKy173cwiBj9jRVZPD9_gdoYLwgpDkST4 " }
POST /api/login
でログインして JWT トークンを取得してみます。
> curl http://localhost:8080/api/login -H ' Content-type: application/json ' -d ' { Email: "$EMAIL", Password: "$PASSWORD" } '
{ " succeeded " :true, " token " : " eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJlbWFpbEBleGFtcGxlLmxvY2FsIiwianRpIjoiNGE0NzQzYWMtZDU5Yi00NjI3LThhMmEtN2JkZjAxMTQyODk4IiwiaHR0cDovL3NjaGVtYXMueG1sc29hcC5vcmcvd3MvMjAwNS8wNS9pZGVudGl0eS9jbGFpbXMvbmFtZWlkZW50aWZpZXIiOiJkYjVmNWEwMC0xYzNiLTQ1MDYtOTE3YS02NWJlODJmYTg2MmQiLCJleHAiOjE1Mjk2OTgyNjIsImlzcyI6Imh0dHA6Ly9sb2NhbGhvc3Q6NTkxMjQvIiwiYXVkIjoiaHR0cDovL2xvY2FsaG9zdDo1OTEyNC8ifQ.ZZreutgH3FgKy173cwiBj9jRVZPD9_gdoYLwgpDkST4 " }
GET /api/public
を使用してパブリック ページにアクセスすると、ランダムな値が返されます。
> curl http://localhost:8080/api/public
{ " value " :737}
GET /api/protected
を使用して保護されたページにアクセスします。これには JWT トークンが必要です。
> curl http://localhost:8080/api/protected -H ' Authorization: Bearer $TOKEN '
{ " value " :769}
コマンドライン ( curl
など) または他のアプリ ( Postman
など) を使用してアプリをテストできます。
コレクション ( TestsPostmanCollection.json
から) とグローバル変数 ( TestsPostmanVariables.json
から) を Postman にインポートします。
グローバル変数パネルでEmail
、 Password
、 Token
を編集します。
これで、Postman からサンプルリクエストを送信できるようになりました。