Основные вопросы в самом низу!
Ubuntu 18.04.3
ASP.NET Core 2.2
React JS
nginx version: nginx/1.14.0 (Ubuntu)
Сделал я аутентификацию на основе JWT по статьям, одну из которых можно увидеть по
ссылке. Но в статье немного не тот исходный код, что у меня. У меня сделано один в один как по
ссылке на гитхабе. Так вот. Если я дебажу это на своём компьютере, то всё работает нормально. Залил я веб-приложение на VPS воспользовавшись
статьёй и ещё кучей статей оттуда же и гугла. Всё заработало.
Во-первых, мне почему-то приходит в ответе от сервера два вида куков (должно ли?) - это .AspNetCore.Identity.Application и .AspNetCore.Application.Id (это JWT):
Request headersPOST /api/auth HTTP/1.1
Content-Type: application/json
User-Agent: PostmanRuntime/7.20.1
Accept: */*
Cache-Control: no-cache
Postman-Token: 4455ffc3-78ba-40cc-bc3b-c49b13df121d
Host: my-site.ru
Accept-Encoding: gzip, deflate
Content-Length: 52
Connection: keep-alive
Request body{
"login": "admin",
"password": "Qwerty123MegaPassword"
}
Response headersHTTP/1.1 200 OK
Server: nginx/1.14.0 (Ubuntu)
Date: Sat, 18 Jan 2020 13:51:23 GMT
Content-Type: application/json; charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive
Vary: Accept-Encoding
Cache-Control: no-cache
Pragma: no-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
Set-Cookie: .AspNetCore.Identity.Application=CfDJ8FG6Anf1vpBAjf7Y4rsmh5YxW7NXd3ttKKmWqA45S-BxNm2Fh_C99pZggLK_fHoFqP0NrSN2cUiI0gKqQ4uYPO9Ec2vSyHo0sgx7TlOY3Q5vdIxESWOYQxL3m2u-xSbH3_ypfgYLh8YLOwiDdGHUDiubNjDVOmr2yKvEq5irAgt93zZMr04KJsdxc79W3MNeUXDcCXrYvxyW6Gkl0_7jJxJVRk84tz_7WxZa0n_T2tPrbElAJuS6tp5MrP4F-FB220sGcXrS55Bxihdmx7GTmP4i8j0UpjWcZPCk5cukh6yYa1cjd-qIJZEGqNsv2WejsRLV__INCtrHg7bilRZ_sjpTYRZK65tAoK16eJ0TvMaksWOfWl6H1lujOhbpS1slbrUsvtXZZAMY_AA040fDMkEQUJ4-88Wm1G6MhjyWGt3ZszKh7QStNtk03MKzQvcK9y1Y3-yDEtLIY5hHzJ-501laCaGgUN7OiCmWt1Sj4sS7q0bmzgnkdEmuxeBlctCtlktzMzr07dhQgW-nllV8QufZYw1C3GaK_9D9zwxYFic9IoR73krtE18EMiKdnHHCbMW4U1qDyj5VPga0L5xfqw0tFFpE_5Cq89KmC3_mcMu3seJmoCNzTL6a4gNMCjfotGpc1xpkgsFYiOgIqenR869IM3SteMO0ZTcfdpCrSJ_B; expires=Sat, 01 Feb 2020 13:51:23 GMT; path=/; secure; samesite=strict; httponly
Set-Cookie: .AspNetCore.Application.Id=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2NsYWltcy9uYW1lIjoiYWRtaW4xIiwic3ViIjoiYWRtaW4xIiwianRpIjoiMTBiMGJjYmEtMTA0MS00NjM2LTgyMDctMjYwOGMwOWIyMTdlIiwiaWF0Ijo0OTg4MzQ5MTMwMDEsImh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vd3MvMjAwOC8wNi9pZGVudGl0eS9jbGFpbXMvcm9sZSI6IkFkbWluaXN0cmF0b3IiLCJuYmYiOjE1NzkzNTU0ODMsImV4cCI6MTU3OTM1OTA4MywiaXNzIjoiR29lc0NsaWVudCIsImF1ZCI6IkdPRVMifQ.oSru175eZ7o2UoGJOAhygoItDFwEsOimCYRCvTGgCJI; max-age=3600; path=/; secure; samesite=strict; httponly
X-Content-Type-Options: nosniff
X-Xss-Protection: 1
X-Frame-Options: DENY
Content-Encoding: gzip
Response body{
"minutes": 60,
"serverTimeInfo": "UTC: 18.01.2020 13:51:23 +00:00; Local: 18.01.2020 16:51:23 +03:00"
}
На картинке видно, что куки истекли.
А здесь видно, что они не были добавлены вообще в приложение. Непонятно, как это исправить?Команды в Ubuntu выдаютroot@vm-username-114825:~# ls -l /etc/localtime
lrwxrwxrwx 1 root root 33 Jan 18 16:01 /etc/localtime -> /usr/share/zoneinfo/Europe/Moscow
root@vm-username-114825:~# timedatectl
Local time: Sat 2020-01-18 17:02:56 MSK
Universal time: Sat 2020-01-18 14:02:56 UTC
RTC time: Sat 2020-01-18 14:02:57
Time zone: Europe/Moscow (MSK, +0300)
System clock synchronized: yes
systemd-timesyncd.service active: yes
RTC in local TZ: no
Nginx настройки для сайта (пока без HTTPS)server {
listen 80;
listen [::]:80;
server_name my-site.ru www.my-site.ru *.my-site.ru;
location / {
proxy_pass http://localhost:5000;
proxy_pass_header Set-Cookie;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection keep-alive;
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
1. Должно ли вообще приходить два вида куков, если делать JWT аутентификацию?
2. В чём может быть причина, что срок истечения куков примерно две недели назад?
3. Как исправить проблему?