2016-06-10 1 views
2

документации по Parse.User.getSessionToken состояниях:Анализировать-сервер user.getSessionToken() не определен

Возвращает маркер сеанса для этого пользователя, если пользователь был войти в систему, или если он является результатом запроса с помощью главного ключа. В противном случае возвращает undefined.

Я пользуюсь JS SDK. Когда я создаю и сохраняю нового пользователя с помощью главного ключа, я могу захватить токен сеанса в обратном вызове с помощью user.getSessionToken. Это прекрасно работает.

Когда я запрашиваю пользователя с помощью главного ключа, пользователь возвращается, и я пытаюсь получить токен сеанса таким же образом, и он не определен.

Я подтвердил, что для этого пользователя существует действительный сеанс, но результат всегда один и тот же.

Я пытаюсь войти в систему с запрошенным пользователем.

Для функции become() требуется токен сеанса.

Любая помощь будет оценена по достоинству.

Спасибо!

ответ

2

Так получается, что создание и сохранение нового пользователя создает сеанс маркер и человек может использовать getSessionToken() в блоке после того, как сохранить, чтобы захватить этот маркер:

//create newUser and save username/password 

return newUser.save(null, {userMasterKey:true}) 
    .then(function(user) { 
     var token = user.getSessionToken(); 
     //use that token 
}); 

Запрос для пользователя и пытается получить токен, однако не будет работать:

userQuery.first({useMasterKey:true}) 
    .then(function(user) { 
      if(user) 
      { 
       var token = user.getSessionToken(); 
       //token is null 
      } 

Я делаю SSO логин и использовать маркер от сервера SAML в качестве имени пользователя пользователя Разбор. Мне нужно было войти в Parse после того, как мой клиент мобильного клиента зашел на сервер SSO и предоставил клиенту маркер сеанса синтаксического анализа.

Для существующих пользователей синтаксического анализа решение заключалось в том, чтобы запрашивать пользователя, использовать главный ключ, чтобы изменить пароль на случайный пароль супер-пупера, использовать этот новый пароль для входа в систему, а затем захватить токен сеанса и отправить его ,

Надеюсь, это кому-то поможет.

-1

Для меня имеет смысл, что если вы входите в систему как один пользователь и запрашиваете другого пользователя с использованием masterKey, то этот пользователь не будет иметь токен сеанса, даже если он был в настоящий момент зарегистрирован и имел действительный сеанс.

Зачем вам нужно «стать» этим пользователем?

Почему бы просто не делать то, что когда-либо запрашивало/обновляло, вам нужно было использовать мастер-ключ вместо того, чтобы «стать» этим пользователем?

Смежные вопросы