webapi jwt example
v1.0
git clone https://github.com/GLEBR1K/webapi-jwt-example jwt
cd jwt W ebAPI_Example
dotnet runPOST /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 からサンプルリクエストを送信できるようになりました。