Старое поле session.user_id
было deprecated, а его значение переехало в session.application.application_id
и точнее отражает смысл. application_id
все также может меняться в ряде случаев для одного пользователя, это фактически копия старогов session.user_id
просто в новом более семантически корректном месте. Он также остается разный для разных его приложений и устройств пользователя.
Чтобы помочь решить задачу, о которой вы говорите, мы дополнительно передаем новый объект session.user
, если пользователь авторизован в Яндексе на устройстве, этот объект содержит поле user_id
- новый идентификаор, который постоянный для все поверхностей пользователя, он не меняется для этого пользователя.
Более того, чтобы не нужно было самостоятельно строить хранилище, в котором использовать эти значения как ключи, мы сделали свой сервис хранения как сессионного, так и пользовательского контекста. Пользуйтесь!
Похоже что я рано обрадовался новому user.usr_id.
Вот прямо сейчас имею ситуацию:
Мобильное приложение "Яндекс".
Вход в аккаунт выполнен.
Запускаю один из своих навыков и получаю:
"user": {
"user_id": "CB41B6DCC9793F2B3FE11A2F7546DA9CAAC0459AC9EB8B218C70463B9A23A314"
},
"application": {
"application_id": "544A75C7A4C0FCEC19F874513BF660AB15B5786803BE7E0F19F255DE213985F8"
},
Теперь запускаем другой навык и получаю:
"user": {
"user_id": "D390711D050CB1F3C74AB45CC75A889E6C3A9FF2D068B99C02DBDE490FFEDE41"
},
"application": {
"application_id": "8CC5639D1DF9523F8963778E5BFF45C81B8486312E81C25F1B61301451D2429D"
},
Как так то ?
Отличаются и user.user_id и application.application_id