EPaP
מנהלת בפמ"ג
מנהל
מנוי פרימיום
בוגר/תלמיד פרוג
עיצוב גרפי DIP
עיצוב גרפי
כתיבה ספרותית
עיצוב פונטים
פרסום וקופי
UX UI
D I G I T A L
•
מפתחת אתר באמצעות Web API, Angular 8
אני מאבטחת את האתר בתקן JWT
אני יוצרת טוקן ושולחת אותו מהקליינט
אבל משום מה ה C# לא מקבל אותו כתקין.
ואני מקבלת הודעת שגיאה של בלתי מורשה
אשמח להבין מה הבעיה שלי
אני מאבטחת את האתר בתקן JWT
אני יוצרת טוקן ושולחת אותו מהקליינט
אבל משום מה ה C# לא מקבל אותו כתקין.
ואני מקבלת הודעת שגיאה של בלתי מורשה
אשמח להבין מה הבעיה שלי
C#:
[/LEFT]
תודה!
קוד:
public string GenerateTokenForUser(UsersDTO user)[/RIGHT]
[LEFT] {
var signingKey = "GQDstc21ewfffffffffffFiwDffVvVBrk";
var now = DateTime.UtcNow;
var key = new SymmetricSecurityKey(Encoding.Default.GetBytes(signingKey));
var creds = new SigningCredentials(key,
SecurityAlgorithms.HmacSha256);
var claimsIdentity = new ClaimsIdentity(new List<Claim>()
{
new Claim(ClaimTypes.Name, user.id.ToString())
}, "custom");
var securityTokenDescriptor = new SecurityTokenDescriptor()
{
Issuer = "self",
Subject = claimsIdentity,
SigningCredentials = creds,
Expires = now.AddHours(5)
};
var tokenHandler = new JwtSecurityTokenHandler();
var plainToken = tokenHandler.CreateToken(securityTokenDescriptor);
var signedAndEncodedToken = tokenHandler.WriteToken(plainToken);
return signedAndEncodedToken;
}
Web API:
קוד:
[Authorize]
[Route("GetLearnedPagesCount/{userId}")]
public IHttpActionResult GetLearnedPagesCount(int userId)
{
...
}
Angular 8:
קוד:
httpOptions = {
headers: new HttpHeaders({
'Authorization': `Bearer `+this.cookieService.get('token')
})
};
GetLearnedPages(): Observable<Array<MyPages>> {
return this.httpClient.get<Array<MyPages>>(this.serverServ.URL + "Controller/GetLearnedPages/"
+ this.user.id, this.httpOptions);
}