Вы можете получить это из претензий JWT. Вот список стандартных претензий: Претензии JWT .
Тема, электронная почта, имя или псевдоним будут подходящими, в зависимости от вашего случая.
Если вам нужен внутренний идентификатор, такой как первичный ключ базы данных, - используйте идентификатор субъекта для связи с этим внутренним идентификатором. Утечка внутренних ссылок на внешние источники не считается хорошей практикой.
Как получить идентификатор субъекта:
const jwt = require("jsonwebtoken");
// this is just for test, get a real verified token from your middleware
const testToken = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c";
const token = jwt.decode(testToken);
let subjectId = token.sub; // then lookup and insert into database
Вы можете узнать больше, прочитав спецификацию OpenID Connect здесь: Спецификация OpenID Connect раздел 2.2 для части идентификатора токена.