public async Task GetProfileDataAsync(ProfileDataRequestContext context) { var subId = context.Subject.GetSubjectId(); var user = await _customUserRepository.FindById(int.Parse(subId)); var claims = new List <Claim>() { new Claim(JwtRegisteredClaimNames.Email, user.Email), new Claim("username", user.UserName), new Claim("city", user.City) }; if (user.Id == 1) { claims.Add(new Claim("role", "admin")); } else { claims.Add(new Claim("role", "customer")); } context.AddRequestedClaims(claims); //claimlerin jwtnin içerisinde gözükmesini sağlar ama sağlıklı değildir. context.IssuedClaims = claims; }
public async Task GetProfileDataAsync(ProfileDataRequestContext context) { var subId = context.Subject.GetSubjectId(); var user = await _customUserRepository.FindById(int.Parse(subId)); var claims = new List <Claim>() { new Claim("email", user.Email), //sabitler oldugu için kullandım olmasaydı kendim yazardım. Best practice için uygun olanı sabit kullanmak new Claim("name", user.UserName), new Claim("city", user.City) }; if (user.Id == 1) { claims.Add(new Claim("role", "admin")); } else { claims.Add(new Claim("role", "customer")); } context.AddRequestedClaims(claims); //context.IssuedClaims = claims; // yayınlacak claimler. token içerisinde role ve city degerlerini görmek istersem kullanırım. Fakat tokenin boyutu büyür gerek yok bence. Kullanıcıyla alakalı bilgileri userendpointinden alırım. }