AminMhmdi Ответов: 1

Сгенерировать токен для каждого пользователя в OAuth носителем-токеном


привет
я создаю asp.net проект web api и использование токена на предъявителя для авторизации пользователя
проблема в том, когда отправить
username=xxxx&password=xxxx&grant_type=password
чтобы http://address/Token он может генерировать более одного токена для каждого пользователя.
я хочу сгенерировать один токен для каждого пользователя, как я могу это сделать??

Что я уже пробовал:

я посылаю username=xxxx & amp; password=xxxx & amp;grant_type=password as request as body of request to http://address/Token несколько раз и он генерирует несколько токенов для одного пользователя

Richard Deeming

Вы имеете в виду, что он возвращает несколько токенов в рамках одного запроса? Если да, то покажите нам соответствующие части вашего кода и конфигурации.

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

AminMhmdi

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

Richard Deeming

Это нормально, потому что так оно и работает. Токен-это зашифрованный билет, представляющий данные пользователя; он не хранится на сервере. Часть данных, которые будут зашифрованы, будет временем истечения срока действия, которое будет отличаться каждый раз, когда вы запрашиваете новый токен.

AminMhmdi

спасибо за повтор, у каждого токена есть время истечения срока действия, могу ли я удалить/отозвать токен до истечения срока действия??
я делаю это на веб-странице с Ajax sessionStorage. removeItem, но часть моего клиента использует приложение на основе QT, я хочу создать выход для своего веб-api.

1 Ответов

Рейтинг:
1

sonymon mishra

Он будет создавать разные токены для каждого сеанса пользователя. Это похоже на одноразовый пользовательский токен.
Что вы можете сделать, это:
1. Звонок "http://address/Token" вместе с логином=ХХХХ&усилителя;пароль=ХХХХ&амп;grant_type=password как запрос, как тело.
2. Сохранить полученный маркер локально(в сессии переменной при использовании серверных технологий или локального хранилища при использовании СПА-приложения).
3. отправьте токен в свойстве авторизации вместе со следующими запросами.
4. Как только пользователь выйдет из системы, удалите токен из сеанса.
5. Пользователь считается зарегистрированным, пока пользователь имеет одноразовый токен с ним.

Примечание: войдите в систему один раз и используйте токен для последовательных запросов.


Примечание: Если вы используете более двух приложений, совместно использующих один и тот же пользовательский токен в IIS. Затем сделайте машинный ключ в пуле приложений IIS для обоих приложений одинаковым.


AminMhmdi

я знаю эти 5 шагов,но я не знаю, как кодирует эти 5 шагов, которые вы говорите!

sonymon mishra

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

sonymon mishra

Мне нужны эти разъяснения от вас.
1. Какой язык Клинтесида вы используете.
2. используете ли вы Owin OAuth?
3. из 5 шагов на каком шаге вы застряли?

AminMhmdi

я удаляю его с помощью sessionStorage. removeItem (key); на html-странице,но мой клиент-это android-приложение, которое использует QML я не знаю, как удалить этот ключ в QML

sonymon mishra

Пожалуйста, дайте мне знать архитектуру вашего приложения. Так как я не могу догадаться.
1. Приложение Для Android ? Гибрид или абориген?
2. Какая технология сервера?

AminMhmdi

приложение для android ,
использование сервера ASP.NET веб-api

sonymon mishra

Я понял его Андроида. Но существуют различные способы создания приложений для Android, таких как
1. Развития-через родное приложение андроид SDK, Eclipse и Java, а эмулятор.
2. гибридная разработка приложений - где вы используете HTML/CSS/Javascript для пользовательского интерфейса и связи с сервером.
3. Использование Xamarin.

Так Какой же метод вы используете?