{"id":371,"date":"2021-07-07T14:40:04","date_gmt":"2021-07-07T14:40:04","guid":{"rendered":"https:\/\/okankaradag.com\/?p=371"},"modified":"2021-07-09T14:10:14","modified_gmt":"2021-07-09T14:10:14","slug":"json-web-token-jwt-nedir-net-core-5-0-ortaminda-nasil-kullanilir","status":"publish","type":"post","link":"https:\/\/okankaradag.com\/en\/asp-net-5\/json-web-token-jwt-nedir-net-core-5-0-ortaminda-nasil-kullanilir","title":{"rendered":"What is Json Web Token (JWT)? How to use in .Net Core (5.0)"},"content":{"rendered":"<p>Merhaba bu g\u00f6nderide jwt hakk\u0131nda bilgi verece\u011fim ve bununla ilgili \u00f6rnek bir proje yapaca\u011f\u0131z<\/p>\n\n\n\n<h4>JWT Nedir?<\/h4>\n\n\n\n<p>Jwt, sunucu (server) ve istemci (client) aras\u0131nda g\u00fcvenlik bilgilerini payla\u015fmak i\u00e7in kullan\u0131lan a\u00e7\u0131k bir standartt\u0131r. Her jwt bir json objesi i\u00e7erir bu json objelerinde de baz\u0131 talepler (claims) vard\u0131r. Taleplerin de\u011fi\u015ftirilememesini sa\u011flamak i\u00e7in de bir kriptografik algoritma ile \u015fifrelenir.<\/p>\n\n\n\n<h4>\u00d6rnek Senaryo<\/h4>\n\n\n\n<p>T\u00fcm \u00fcr\u00fcnlerinizin d\u00f6nd\u00fc\u011f\u00fc bir api oldu\u011funu varsayal\u0131m bu servisden \u00fcr\u00fcnleri \u00e7ekebilmek i\u00e7inde gerekli \u015fart, kay\u0131tl\u0131 kullan\u0131c\u0131 olmak ve rol\u00fcm\u00fcz\u00fcn de yetkili personel olmas\u0131. Her api iste\u011finde parametre olarak username ve \u015fifre mant\u0131ken g\u00f6nderilemez i\u015flemi yapmaya hak kazanmak i\u00e7in :d bir tane biletimizin (token) olmas\u0131 gerekiyor bu bilet ile api isteklerini g\u00fcvenli ve sorunsuz bir \u015fekilde yapabiliriz. Token alaca\u011f\u0131m\u0131z servise username ve \u015fifremizi g\u00fcvenli bir \u015fekilde g\u00f6ndeririz bilgilerimiz do\u011fru ise servis bize bir bilet verir bu bilet bir Json Web Token&#8217;dir. (\u0130leriki k\u0131s\u0131mlarda ayr\u0131nt\u0131lar\u0131 var) \u00dcr\u00fcnler servisinin header b\u00f6l\u00fcm\u00fcne bu bileti ekleyerek iste\u011fi g\u00f6ndeririz e\u011fer bilet ge\u00e7erli ise servis \u00fcr\u00fcnleri d\u00f6ner.<\/p>\n\n\n\n<h4>\u00d6rnek Bir Jwt Objesi<\/h4>\n\n\n\n<p>jwt objesi base64 ile \u015fifrelenmi\u015f \u00fc\u00e7 b\u00f6l\u00fcmden olu\u015fur:<\/p>\n\n\n\n<ul><li><strong>Header<\/strong><ul><li>\u015eifreleme algoritmas\u0131 hakk\u0131nda bilgi verir<\/li><\/ul><\/li><li><strong>Payload<\/strong><ul><li>Id, Username, Name gibi kullan\u0131c\u0131 bilgileri d\u00f6ner<\/li><\/ul><\/li><li><strong>Verify Signature<\/strong><ul><li>Bu k\u0131s\u0131m en \u00f6nemli yer, buray\u0131 dijital imza olarak tan\u0131mlayabiliriz. serverdan belirli bir key ile hashleyerek imza olu\u015ftulur bu imza sayesinde server do\u011frulama yapar. \u00d6rne\u011fin name&#8217;i de\u011fi\u015ftirip bir encoding yaparsam tokenler de\u011fi\u015fecektir ve do\u011frulama ba\u015far\u0131s\u0131z olacakt\u0131r.<\/li><\/ul><\/li><\/ul>\n\n\n\n<figure class=\"wp-block-gallery columns-1 is-cropped\"><ul class=\"blocks-gallery-grid\"><li class=\"blocks-gallery-item\"><figure><img loading=\"lazy\" width=\"571\" height=\"559\" src=\"https:\/\/okankaradag.com\/wp-content\/uploads\/2021\/07\/Jwt-Decoded.png\" alt=\"\" data-id=\"389\" data-full-url=\"https:\/\/okankaradag.com\/wp-content\/uploads\/2021\/07\/Jwt-Decoded.png\" data-link=\"https:\/\/okankaradag.com\/?attachment_id=389\" class=\"wp-image-389\" srcset=\"https:\/\/okankaradag.com\/wp-content\/uploads\/2021\/07\/Jwt-Decoded.png 571w, https:\/\/okankaradag.com\/wp-content\/uploads\/2021\/07\/Jwt-Decoded-300x294.png 300w\" sizes=\"(max-width: 571px) 100vw, 571px\" \/><\/figure><\/li><\/ul><\/figure>\n\n\n\n<figure class=\"wp-block-gallery columns-1 is-cropped\"><ul class=\"blocks-gallery-grid\"><li class=\"blocks-gallery-item\"><figure><img loading=\"lazy\" width=\"400\" height=\"418\" src=\"https:\/\/okankaradag.com\/wp-content\/uploads\/2021\/07\/Jwt-Encoded-e1625660794368.png\" alt=\"\" data-id=\"390\" data-full-url=\"https:\/\/okankaradag.com\/wp-content\/uploads\/2021\/07\/Jwt-Encoded-e1625660794368.png\" data-link=\"https:\/\/okankaradag.com\/?attachment_id=390\" class=\"wp-image-390\"\/><\/figure><\/li><\/ul><\/figure>\n\n\n\n<h4>Asp.Net 5.0 Api Projesi ile Nas\u0131l Kullan\u0131l\u0131r<\/h4>\n\n\n\n<p>Bundan sonraki anlat\u0131m kod \u00fczerinden devam edece\u011fim, \u015eimdi Basit bir web api projesi yaparak kod taraf\u0131nda nas\u0131l kullan\u0131ld\u0131\u011f\u0131n\u0131 inceleyelim.<\/p>\n\n\n\n<p>Visual studio \u00fczerinden bir Asp.net 5.0 web api projesi olu\u015fturarak ba\u015fl\u0131yoruz.<\/p>\n\n\n\n<figure class=\"wp-block-gallery columns-1 is-cropped\"><ul class=\"blocks-gallery-grid\"><li class=\"blocks-gallery-item\"><figure><img loading=\"lazy\" width=\"1023\" height=\"707\" src=\"https:\/\/okankaradag.com\/wp-content\/uploads\/2021\/07\/asp.net-core-5.0-new-project.png\" alt=\"\" data-id=\"380\" data-full-url=\"https:\/\/okankaradag.com\/wp-content\/uploads\/2021\/07\/asp.net-core-5.0-new-project.png\" data-link=\"https:\/\/okankaradag.com\/?attachment_id=380\" class=\"wp-image-380\" srcset=\"https:\/\/okankaradag.com\/wp-content\/uploads\/2021\/07\/asp.net-core-5.0-new-project.png 1023w, https:\/\/okankaradag.com\/wp-content\/uploads\/2021\/07\/asp.net-core-5.0-new-project-300x207.png 300w, https:\/\/okankaradag.com\/wp-content\/uploads\/2021\/07\/asp.net-core-5.0-new-project-768x531.png 768w\" sizes=\"(max-width: 1023px) 100vw, 1023px\" \/><\/figure><\/li><\/ul><\/figure>\n\n\n\n<p>UserService ad\u0131nda bir s\u0131n\u0131f ekleyelim.<\/p>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"theme:github toolbar:2 lang:c# decode:true\">    public interface IUserService\n    {\n        User AuthenticateUser(string firstname, string password);\n    }\n    public class UserService : IUserService\n    {\n        private readonly List&lt;User&gt; Users = new List&lt;User&gt;\n        {\n            new User\n            {\n                Id=1,\n                Name=\"Okan\",\n                Surname=\"Karada\u011f\",\n                Username = \"okank\",\n                Password=\"Test\", \/\/Normal \u015fartlar alt\u0131nda db de hashli olarak tutulmal\u0131\n            }\n        };\n        public User AuthenticateUser(string firstname, string password)\n        {\n            return Users.FirstOrDefault(u =&gt; u.Name == firstname &amp;&amp; u.Password == password);\n        }\n    }<\/pre><\/div>\n\n\n\n<p>Jwt ile ilgili baz\u0131 bilgililerimizi appsettings.json dosyas\u0131nda tutaca\u011f\u0131z.<\/p>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"theme:github toolbar:2 lang:js decode:true\">{\n  \"Logging\": {\n    \"LogLevel\": {\n      \"Default\": \"Information\",\n      \"Microsoft\": \"Warning\",\n      \"Microsoft.Hosting.Lifetime\": \"Information\"\n    }\n  },\n  \"AllowedHosts\": \"*\",\n  \"JwtSettings\": {\n    \"Issuer\": \"https:\/\/okankaradag.com\",\n    \"Audience\": \"https:\/\/okankaradag.com\",\n    \"SigningKey\": \"6543212548789413\"\n  }\n\n}\n<\/pre><\/div>\n\n\n\n<p>JwtSettings objesini dotnet i\u00e7inde daha kolay eri\u015febilmek i\u00e7in bir s\u0131n\u0131f yarataca\u011f\u0131z ve daha sonra middleware&#8217;de bu s\u0131n\u0131fla ili\u015fkilendirece\u011fiz.<\/p>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"theme:github toolbar:2 lang:c# decode:true\">public class JwtSettings\n{\n    public string Issuer { get; set; }\n    public string Audience { get; set; }\n    public string SigningKey { get; set; }\n}<\/pre><\/div>\n\n\n\n<p>Jwt ile ilgili konfig\u00fcrasyonlar\u0131 yapal\u0131m. Middlewarede a\u015fa\u011f\u0131daki gibi tan\u0131mlar\u0131 ekliyoruz<\/p>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"theme:github toolbar:2 lang:c# decode:true\">services.Configure&lt;JwtSettings&gt;(Configuration.GetSection(\"JwtSettings\"));\n\nservices.AddScoped&lt;IUserService, UserService&gt;();\n\nservices.AddAuthentication(auth =&gt;\n{\n    auth.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;\n    auth.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;\n})\n.AddJwtBearer(options =&gt;\n{\n    options.SaveToken = true;\n    options.TokenValidationParameters = new TokenValidationParameters\n    {\n        ValidateIssuer = true,\n        ValidIssuer = Configuration.GetSection(\"JwtSettings\")[\"Issuer\"],\n        ValidateAudience = true,\n        ValidAudience = Configuration.GetSection(\"JwtSettings\")[\"Audience\"],\n        ValidateIssuerSigningKey = true,\n        IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(Configuration.GetSection(\"JwtSettings\")[\"SigningKey\"]))\n    };\n});<\/pre><\/div>\n\n\n\n<blockquote class=\"wp-block-quote\"><p>Startup.cs&#8217;deki configure i\u00e7ine <strong>app.UseAuthentication()<\/strong> ve <strong>app.UseAuthorization()<\/strong> eklemelerini yapmay\u0131 unutmay\u0131n\u0131z<\/p><\/blockquote>\n\n\n\n<p>ilk sat\u0131rda yukar\u0131da bahsetti\u011fim gibi <strong>appsettings.json<\/strong>&#8216;daki <strong>JwtSettings <\/strong>s\u0131n\u0131f\u0131 tan\u0131mlad\u0131k. Token Validation Parametrelerinde yay\u0131mc\u0131, izleyici(auidence) ve yay\u0131mc\u0131ya(issuer) \u00f6zg\u00fcn imzal\u0131 keyi tan\u0131mlad\u0131k.<\/p>\n\n\n\n<p><strong>JwtHelper <\/strong>ad\u0131nda bir s\u0131n\u0131f ile <strong>token <\/strong>\u00fcretimi yapaca\u011f\u0131z<\/p>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"theme:github toolbar:2 lang:c# decode:true\">public class JwtHelper\n{\n    public static string GetJwtToken(string username, JwtSettings jwtSettings, TimeSpan expiration, Claim[] additionalClaims = null)\n    {\n        var tokenHandler = new JwtSecurityTokenHandler();\n        var claims = new[]\n        {\n            new Claim(JwtRegisteredClaimNames.UniqueName,username),\n            new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString())\n        };\n\n        if (additionalClaims is object)\n        {\n            var claimList = new List&lt;Claim&gt;(claims);\n            claimList.AddRange(additionalClaims);\n            claims = claimList.ToArray();\n        }\n\n        var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(jwtSettings.SigningKey));\n        var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha256);\n        var token = new JwtSecurityToken(\n            issuer: jwtSettings.Issuer,\n            audience: jwtSettings.Audience,\n            expires: DateTime.UtcNow.Add(expiration),\n            claims: claims,\n            signingCredentials: creds\n        ); ;\n\n        return tokenHandler.WriteToken(token);\n    }\n}<\/pre><\/div>\n\n\n\n<p>Claim k\u0131sm\u0131na iki tane unique de\u011fer ekledik b\u00f6ylece tokenlerin ayn\u0131 olabilme ihtimalini s\u0131f\u0131rlad\u0131k. settings k\u0131sm\u0131nda yazd\u0131\u011f\u0131m\u0131z bilgiler ve Sha256 algoritmas\u0131n\u0131 kullanarak bir token nesnesi olu\u015fturduk fakat bu token bilgisinde nerdeyse b\u00fct\u00fcn bilgiler oldu\u011fu i\u00e7in <strong>WriteToken <\/strong>metodu ile son kullan\u0131c\u0131ya ge\u00e7ecek tokeni olu\u015fturmu\u015f olduk.<\/p>\n\n\n\n<p>AccountController ekleyip bir token almaya deneyelim.<\/p>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"theme:github toolbar:2 lang:c# decode:true\">[Route(\"[controller]\")]\n[ApiController]\npublic class AccountController : ControllerBase\n{\n    private IUserService UserService;\n    private JwtSettings JwtSettings;\n    public AccountController(IUserService userService, IOptions&lt;JwtSettings&gt; jwtSettings)\n    {\n        UserService = userService;\n        JwtSettings = jwtSettings.Value;\n    }\n    [HttpPost(\"login\")]\n    public IActionResult Login([FromBody] LoginModel loginModel)\n    {\n        var user = UserService.AuthenticateUser(loginModel.Username, loginModel.Password);\n        if (user == null)\n        {\n            return BadRequest(new { message = \"Username or password is incorrect\" });\n        }\n        var claims = new List&lt;Claim&gt;();\n        claims.Add(new Claim(\"username\", user.Username));\n        claims.Add(new Claim(\"displayname\", user.Name));\n        var token = JwtHelper.GetJwtToken(user.Username, JwtSettings, new TimeSpan(0, 15, 0), claims.ToArray());\n        return Ok(token);\n    }\n}<\/pre><\/div>\n\n\n\n<p>Claim olarak <strong>username <\/strong>ve <strong>displayname <\/strong>ekledim isterseniz roles t\u00fcr\u00fcnde rolleri de tan\u0131mlayabilrsiniz.<\/p>\n\n\n\n<p>Postman ile token iste\u011fi<\/p>\n\n\n\n<figure class=\"wp-block-gallery columns-1 is-cropped\"><ul class=\"blocks-gallery-grid\"><li class=\"blocks-gallery-item\"><figure><img loading=\"lazy\" width=\"1024\" height=\"353\" src=\"https:\/\/okankaradag.com\/wp-content\/uploads\/2021\/07\/postman-token-request-1024x353.png\" alt=\"\" data-id=\"396\" data-full-url=\"https:\/\/okankaradag.com\/wp-content\/uploads\/2021\/07\/postman-token-request.png\" data-link=\"https:\/\/okankaradag.com\/?attachment_id=396\" class=\"wp-image-396\" srcset=\"https:\/\/okankaradag.com\/wp-content\/uploads\/2021\/07\/postman-token-request-1024x353.png 1024w, https:\/\/okankaradag.com\/wp-content\/uploads\/2021\/07\/postman-token-request-300x103.png 300w, https:\/\/okankaradag.com\/wp-content\/uploads\/2021\/07\/postman-token-request-768x265.png 768w, https:\/\/okankaradag.com\/wp-content\/uploads\/2021\/07\/postman-token-request.png 1456w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/li><\/ul><\/figure>\n\n\n\n<p>Ald\u0131\u011f\u0131m\u0131z tokeni jwt.io sayfas\u0131nda decode edince a\u015fa\u011f\u0131daki sonu\u00e7 \u00e7\u0131kacakt\u0131r.<\/p>\n\n\n\n<figure class=\"wp-block-gallery columns-1 is-cropped\"><ul class=\"blocks-gallery-grid\"><li class=\"blocks-gallery-item\"><figure><img loading=\"lazy\" width=\"627\" height=\"718\" src=\"https:\/\/okankaradag.com\/wp-content\/uploads\/2021\/07\/jwt-decoded-ex.png\" alt=\"\" data-id=\"397\" data-full-url=\"https:\/\/okankaradag.com\/wp-content\/uploads\/2021\/07\/jwt-decoded-ex.png\" data-link=\"https:\/\/okankaradag.com\/?attachment_id=397\" class=\"wp-image-397\" srcset=\"https:\/\/okankaradag.com\/wp-content\/uploads\/2021\/07\/jwt-decoded-ex.png 627w, https:\/\/okankaradag.com\/wp-content\/uploads\/2021\/07\/jwt-decoded-ex-262x300.png 262w\" sizes=\"(max-width: 627px) 100vw, 627px\" \/><\/figure><\/li><\/ul><\/figure>\n\n\n\n<p>Tokeni ald\u0131k \u015fimdi s\u0131ra kullanmaya geldi. Dotnetin otomatik olu\u015fturdu\u011fu WeatherForecast ad\u0131nda bir api authorize attribute koyaca\u011f\u0131z<\/p>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"theme:github toolbar:2 lang:c# decode:true\">[ApiController]\n[Route(\"[controller]\")]\npublic class WeatherForecastController : ControllerBase\n{\n    private static readonly string[] Summaries = new[]\n    {\n            \"Freezing\", \"Bracing\", \"Chilly\", \"Cool\", \"Mild\", \"Warm\", \"Balmy\", \"Hot\", \"Sweltering\", \"Scorching\"\n        };\n\n    private readonly ILogger&lt;WeatherForecastController&gt; _logger;\n\n    public WeatherForecastController(ILogger&lt;WeatherForecastController&gt; logger)\n    {\n        _logger = logger;\n    }\n    [Authorize]\n    [HttpGet]\n    public IEnumerable&lt;WeatherForecast&gt; Get()\n    {\n        var rng = new Random();\n        return Enumerable.Range(1, 5).Select(index =&gt; new WeatherForecast\n        {\n            Date = DateTime.Now.AddDays(index),\n            TemperatureC = rng.Next(-20, 55),\n            Summary = Summaries[rng.Next(Summaries.Length)]\n        })\n        .ToArray();\n    }\n}<\/pre><\/div>\n\n\n\n<p>Postman \u00fczerinde WeatherForecast&#8217;e istek g\u00f6nderelim<\/p>\n\n\n\n<figure class=\"wp-block-gallery columns-1 is-cropped\"><ul class=\"blocks-gallery-grid\"><li class=\"blocks-gallery-item\"><figure><img loading=\"lazy\" width=\"1024\" height=\"564\" src=\"https:\/\/okankaradag.com\/wp-content\/uploads\/2021\/07\/postman-authorize-request-1024x564.png\" alt=\"\" data-id=\"399\" data-full-url=\"https:\/\/okankaradag.com\/wp-content\/uploads\/2021\/07\/postman-authorize-request.png\" data-link=\"https:\/\/okankaradag.com\/?attachment_id=399\" class=\"wp-image-399\" srcset=\"https:\/\/okankaradag.com\/wp-content\/uploads\/2021\/07\/postman-authorize-request-1024x564.png 1024w, https:\/\/okankaradag.com\/wp-content\/uploads\/2021\/07\/postman-authorize-request-300x165.png 300w, https:\/\/okankaradag.com\/wp-content\/uploads\/2021\/07\/postman-authorize-request-768x423.png 768w, https:\/\/okankaradag.com\/wp-content\/uploads\/2021\/07\/postman-authorize-request.png 1464w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/li><\/ul><\/figure>\n\n\n\n<p>Ald\u0131\u011f\u0131m\u0131z tokeni headerse bearer token etiketine yazd\u0131k ve do\u011frulama ba\u015far\u0131l\u0131 oldu. E\u011fer ki tokende ufak bir de\u011fi\u015fiklik yaparsak 401 d\u00f6necektir. <\/p>\n\n\n\n<p>Project url : <a href=\"https:\/\/github.com\/okankrdg\/JwtExampleProject\" target=\"_blank\" rel=\"noreferrer noopener\">okankrdg\/JwtExampleProject (github.com)<\/a><br>Yaz\u0131n\u0131n sonuna geldik ba\u015fka bir makalede g\u00f6r\u00fc\u015fmek \u00fczere \ud83d\ude42<\/p>\n\n\n\n<p><br><\/p>","protected":false},"excerpt":{"rendered":"<p>asp.net core (5.0) ortam\u0131nda authenticate ve authorize i\u015flemleri yapabilmek i\u00e7in jwt ad\u0131nda a\u00e7\u0131k standart olan bir token hizmetinden bahsedece\u011fim<\/p>","protected":false},"author":1,"featured_media":339,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[40,65,22],"tags":[66,56,27,74,73],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v19.13 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Json Web Token (JWT) Nedir? .Net Core (5.0) Ortam\u0131nda Nas\u0131l Kullan\u0131l\u0131r? - Okan Karada\u011f<\/title>\n<meta name=\"description\" content=\"asp.net core (5.0) ortam\u0131nda authenticate ve authorize i\u015flemleri yapabilmek i\u00e7in jwt ad\u0131nda a\u00e7\u0131k standart olan bir token hizmetinden bahsedece\u011fim\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/okankaradag.com\/en\/asp-net-5\/json-web-token-jwt-nedir-net-core-5-0-ortaminda-nasil-kullanilir\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Json Web Token (JWT) Nedir? .Net Core (5.0) Ortam\u0131nda Nas\u0131l Kullan\u0131l\u0131r? - Okan Karada\u011f\" \/>\n<meta property=\"og:description\" content=\"asp.net core (5.0) ortam\u0131nda authenticate ve authorize i\u015flemleri yapabilmek i\u00e7in jwt ad\u0131nda a\u00e7\u0131k standart olan bir token hizmetinden bahsedece\u011fim\" \/>\n<meta property=\"og:url\" content=\"https:\/\/okankaradag.com\/en\/asp-net-5\/json-web-token-jwt-nedir-net-core-5-0-ortaminda-nasil-kullanilir\/\" \/>\n<meta property=\"og:site_name\" content=\"Okan Karada\u011f\" \/>\n<meta property=\"article:published_time\" content=\"2021-07-07T14:40:04+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-07-09T14:10:14+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/okankaradag.com\/wp-content\/uploads\/2021\/06\/asp.net-core-logo.png\" \/>\n\t<meta property=\"og:image:width\" content=\"800\" \/>\n\t<meta property=\"og:image:height\" content=\"445\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Okan Karada\u011f\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Okan Karada\u011f\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/okankaradag.com\/oauth\/json-web-token-jwt-nedir-net-core-5-0-ortaminda-nasil-kullanilir#article\",\"isPartOf\":{\"@id\":\"https:\/\/okankaradag.com\/oauth\/json-web-token-jwt-nedir-net-core-5-0-ortaminda-nasil-kullanilir\"},\"author\":{\"name\":\"Okan Karada\u011f\",\"@id\":\"https:\/\/okankaradag.com\/#\/schema\/person\/0196919c5e3b6a496101ded872640d52\"},\"headline\":\"Json Web Token (JWT) Nedir? .Net Core (5.0) Ortam\u0131nda Nas\u0131l Kullan\u0131l\u0131r?\",\"datePublished\":\"2021-07-07T14:40:04+00:00\",\"dateModified\":\"2021-07-09T14:10:14+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/okankaradag.com\/oauth\/json-web-token-jwt-nedir-net-core-5-0-ortaminda-nasil-kullanilir\"},\"wordCount\":665,\"commentCount\":6,\"publisher\":{\"@id\":\"https:\/\/okankaradag.com\/#\/schema\/person\/0196919c5e3b6a496101ded872640d52\"},\"keywords\":[\"asp.net 5\",\"asp.net core\",\"Asp.Net identity\",\"jwt\",\"token\"],\"articleSection\":[\"Asp.Net Core\",\"Asp.Net Core 5.0\",\"Oauth\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/okankaradag.com\/oauth\/json-web-token-jwt-nedir-net-core-5-0-ortaminda-nasil-kullanilir#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/okankaradag.com\/oauth\/json-web-token-jwt-nedir-net-core-5-0-ortaminda-nasil-kullanilir\",\"url\":\"https:\/\/okankaradag.com\/oauth\/json-web-token-jwt-nedir-net-core-5-0-ortaminda-nasil-kullanilir\",\"name\":\"Json Web Token (JWT) Nedir? .Net Core (5.0) Ortam\u0131nda Nas\u0131l Kullan\u0131l\u0131r? - Okan Karada\u011f\",\"isPartOf\":{\"@id\":\"https:\/\/okankaradag.com\/#website\"},\"datePublished\":\"2021-07-07T14:40:04+00:00\",\"dateModified\":\"2021-07-09T14:10:14+00:00\",\"description\":\"asp.net core (5.0) ortam\u0131nda authenticate ve authorize i\u015flemleri yapabilmek i\u00e7in jwt ad\u0131nda a\u00e7\u0131k standart olan bir token hizmetinden bahsedece\u011fim\",\"breadcrumb\":{\"@id\":\"https:\/\/okankaradag.com\/oauth\/json-web-token-jwt-nedir-net-core-5-0-ortaminda-nasil-kullanilir#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/okankaradag.com\/oauth\/json-web-token-jwt-nedir-net-core-5-0-ortaminda-nasil-kullanilir\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/okankaradag.com\/oauth\/json-web-token-jwt-nedir-net-core-5-0-ortaminda-nasil-kullanilir#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/okankaradag.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Json Web Token (JWT) Nedir? .Net Core (5.0) Ortam\u0131nda Nas\u0131l Kullan\u0131l\u0131r?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/okankaradag.com\/#website\",\"url\":\"https:\/\/okankaradag.com\/\",\"name\":\"Okan Karada\u011f\",\"description\":\"Programlama \u00dczerine\",\"publisher\":{\"@id\":\"https:\/\/okankaradag.com\/#\/schema\/person\/0196919c5e3b6a496101ded872640d52\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/okankaradag.com\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/okankaradag.com\/#\/schema\/person\/0196919c5e3b6a496101ded872640d52\",\"name\":\"Okan Karada\u011f\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/okankaradag.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/ca08a5537d7e304914c37189abedd2a1?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/ca08a5537d7e304914c37189abedd2a1?s=96&d=mm&r=g\",\"caption\":\"Okan Karada\u011f\"},\"logo\":{\"@id\":\"https:\/\/okankaradag.com\/#\/schema\/person\/image\/\"},\"sameAs\":[\"https:\/\/okankaradag.com\"],\"url\":\"https:\/\/okankaradag.com\/en\/author\/admin\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Json Web Token (JWT) Nedir? .Net Core (5.0) Ortam\u0131nda Nas\u0131l Kullan\u0131l\u0131r? - Okan Karada\u011f","description":"asp.net core (5.0) ortam\u0131nda authenticate ve authorize i\u015flemleri yapabilmek i\u00e7in jwt ad\u0131nda a\u00e7\u0131k standart olan bir token hizmetinden bahsedece\u011fim","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/okankaradag.com\/en\/asp-net-5\/json-web-token-jwt-nedir-net-core-5-0-ortaminda-nasil-kullanilir\/","og_locale":"en_US","og_type":"article","og_title":"Json Web Token (JWT) Nedir? .Net Core (5.0) Ortam\u0131nda Nas\u0131l Kullan\u0131l\u0131r? - Okan Karada\u011f","og_description":"asp.net core (5.0) ortam\u0131nda authenticate ve authorize i\u015flemleri yapabilmek i\u00e7in jwt ad\u0131nda a\u00e7\u0131k standart olan bir token hizmetinden bahsedece\u011fim","og_url":"https:\/\/okankaradag.com\/en\/asp-net-5\/json-web-token-jwt-nedir-net-core-5-0-ortaminda-nasil-kullanilir\/","og_site_name":"Okan Karada\u011f","article_published_time":"2021-07-07T14:40:04+00:00","article_modified_time":"2021-07-09T14:10:14+00:00","og_image":[{"width":800,"height":445,"url":"https:\/\/okankaradag.com\/wp-content\/uploads\/2021\/06\/asp.net-core-logo.png","type":"image\/png"}],"author":"Okan Karada\u011f","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Okan Karada\u011f","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/okankaradag.com\/oauth\/json-web-token-jwt-nedir-net-core-5-0-ortaminda-nasil-kullanilir#article","isPartOf":{"@id":"https:\/\/okankaradag.com\/oauth\/json-web-token-jwt-nedir-net-core-5-0-ortaminda-nasil-kullanilir"},"author":{"name":"Okan Karada\u011f","@id":"https:\/\/okankaradag.com\/#\/schema\/person\/0196919c5e3b6a496101ded872640d52"},"headline":"Json Web Token (JWT) Nedir? .Net Core (5.0) Ortam\u0131nda Nas\u0131l Kullan\u0131l\u0131r?","datePublished":"2021-07-07T14:40:04+00:00","dateModified":"2021-07-09T14:10:14+00:00","mainEntityOfPage":{"@id":"https:\/\/okankaradag.com\/oauth\/json-web-token-jwt-nedir-net-core-5-0-ortaminda-nasil-kullanilir"},"wordCount":665,"commentCount":6,"publisher":{"@id":"https:\/\/okankaradag.com\/#\/schema\/person\/0196919c5e3b6a496101ded872640d52"},"keywords":["asp.net 5","asp.net core","Asp.Net identity","jwt","token"],"articleSection":["Asp.Net Core","Asp.Net Core 5.0","Oauth"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/okankaradag.com\/oauth\/json-web-token-jwt-nedir-net-core-5-0-ortaminda-nasil-kullanilir#respond"]}]},{"@type":"WebPage","@id":"https:\/\/okankaradag.com\/oauth\/json-web-token-jwt-nedir-net-core-5-0-ortaminda-nasil-kullanilir","url":"https:\/\/okankaradag.com\/oauth\/json-web-token-jwt-nedir-net-core-5-0-ortaminda-nasil-kullanilir","name":"Json Web Token (JWT) Nedir? .Net Core (5.0) Ortam\u0131nda Nas\u0131l Kullan\u0131l\u0131r? - Okan Karada\u011f","isPartOf":{"@id":"https:\/\/okankaradag.com\/#website"},"datePublished":"2021-07-07T14:40:04+00:00","dateModified":"2021-07-09T14:10:14+00:00","description":"asp.net core (5.0) ortam\u0131nda authenticate ve authorize i\u015flemleri yapabilmek i\u00e7in jwt ad\u0131nda a\u00e7\u0131k standart olan bir token hizmetinden bahsedece\u011fim","breadcrumb":{"@id":"https:\/\/okankaradag.com\/oauth\/json-web-token-jwt-nedir-net-core-5-0-ortaminda-nasil-kullanilir#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/okankaradag.com\/oauth\/json-web-token-jwt-nedir-net-core-5-0-ortaminda-nasil-kullanilir"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/okankaradag.com\/oauth\/json-web-token-jwt-nedir-net-core-5-0-ortaminda-nasil-kullanilir#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/okankaradag.com\/"},{"@type":"ListItem","position":2,"name":"Json Web Token (JWT) Nedir? .Net Core (5.0) Ortam\u0131nda Nas\u0131l Kullan\u0131l\u0131r?"}]},{"@type":"WebSite","@id":"https:\/\/okankaradag.com\/#website","url":"https:\/\/okankaradag.com\/","name":"Okan Karada\u011f","description":"Programlama \u00dczerine","publisher":{"@id":"https:\/\/okankaradag.com\/#\/schema\/person\/0196919c5e3b6a496101ded872640d52"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/okankaradag.com\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/okankaradag.com\/#\/schema\/person\/0196919c5e3b6a496101ded872640d52","name":"Okan Karada\u011f","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/okankaradag.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/ca08a5537d7e304914c37189abedd2a1?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/ca08a5537d7e304914c37189abedd2a1?s=96&d=mm&r=g","caption":"Okan Karada\u011f"},"logo":{"@id":"https:\/\/okankaradag.com\/#\/schema\/person\/image\/"},"sameAs":["https:\/\/okankaradag.com"],"url":"https:\/\/okankaradag.com\/en\/author\/admin"}]}},"_links":{"self":[{"href":"https:\/\/okankaradag.com\/en\/wp-json\/wp\/v2\/posts\/371"}],"collection":[{"href":"https:\/\/okankaradag.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/okankaradag.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/okankaradag.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/okankaradag.com\/en\/wp-json\/wp\/v2\/comments?post=371"}],"version-history":[{"count":28,"href":"https:\/\/okankaradag.com\/en\/wp-json\/wp\/v2\/posts\/371\/revisions"}],"predecessor-version":[{"id":417,"href":"https:\/\/okankaradag.com\/en\/wp-json\/wp\/v2\/posts\/371\/revisions\/417"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/okankaradag.com\/en\/wp-json\/wp\/v2\/media\/339"}],"wp:attachment":[{"href":"https:\/\/okankaradag.com\/en\/wp-json\/wp\/v2\/media?parent=371"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/okankaradag.com\/en\/wp-json\/wp\/v2\/categories?post=371"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/okankaradag.com\/en\/wp-json\/wp\/v2\/tags?post=371"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}