2016-02-20 5 views
1

Я пытаюсь реализовать хороший JWT API на основе, так что я уже прочитал кучу документации о JWTs и как они работают, но я не могу понять несколько вещей:Использование JWT в Laravel

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

Нужно ли передавать все через JWT? Например, получение данных конкретной страницы из базы данных или получение всех сообщений в блоге или что-то похожее на это.

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

Я использую Tymon/JWT-Auth library в этом случае и здесь немного демонстрация того, как мое приложение работает на данный момент:

Пользователь отправляет запрос на запись к API/аутентификации по маршруту, который регистрирует пользователя в и возвращает JWT-токен как json вместе с данными пользователя - имя, адрес электронной почты и разрешения. Таким образом, данные, возвращаемые с сервера выглядит следующим образом:

{ 
    "token": "blablabla", 
    "user": { 
     "email": "[email protected]", 
     "name": "Test User", 
     "permissions": [ "can_edit_posts", "can_delete_users" ] 
    } 
} 

JWT хранится в глобальной переменной в JavaScript называется маркером. Пользовательские данные хранятся в объекте пользователя.

Пользователь переходит на страницу блога let's say. Эта страница отправляет на сервер запрос GET, который извлекает все сообщения: /blogs?token=[THAT_GLOBAL_VARIABLE_HERE] Сервер возвращает список всех сообщений. Глобальная переменная токена обновляется тем, что находится в клюшке носителя в заголовке.

Это правильный способ сделать это?

ответ

1

Когда пользователь входит в приложение, я могу передать данные пользователя через JWT? Да. Модель пользователя - это внутренний токен.

Как я могу получить данные пользователя из токена? Это результат ответа here. Вы передаете токен и вызываете метод authenticate(). Это вернет модель User на основе токена. Оттуда ваш код совпадает с JWT или без него.

Короче говоря, вы входите в свое приложение традиционным способом (на основе формы), затем вы даете пользователю токен. В этом токене находится пользовательская модель и любые дополнительные данные, которые вы хотите сохранить в ней. С этого момента каждый запрос на основе JSON нуждается в этом токене, чтобы определить, что пользователь запрашивает.

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