Использование скриптов для авторизации пользователей в службах Mobile Services

Для знакомства с возможностями платформы  вы можетеактивировать Microsoft Azure бесплатно!

Тема практической работы — использование серверных скриптов для авторизации прошедших проверку подлинности пользователей и предоставления им доступа к данным в службах Microsoft Azure Mobile Services из приложения Android. Учимся регистрировать скрипты в службах Mobile Services для фильтрации запросов на основе значения userId в идентификаторе пользователя, прошедшего проверку подлинности, и гарантируем, что каждый пользователь будет видеть только собственные данные.

Практическая работа построена на основе проекта быстрого запуска Mobile Services и предыдущей работы Как проверить подлинность. Предварительно необходимо выполнить практическую работу Как проверить подлинность.

Регистрация скриптов

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

1. Войдите на портал управления Microsoft Azure, нажмите Mobile Services и выберите свое приложение.

2. Нажмите вкладку Data (Данные) и выберите таблицу TodoItem.

3. Нажмите вкладку Script (Скрипт) и выберите операцию Insert (Вставить).

4. Замените существующий скрипт следующей функцией и нажмите Save (Сохранить).

function insert(item, user, request) { item.userId = user.userId; request.execute(); }

Этот скрипт добавляет значение userId в идентификатор  пользователя, прошедшего проверку подлинности, до его вставки в таблицу TodoItem.

Примечание

При первом выполнении этого скрипта вставки необходимо включить динамическую схему. Включенная динамическая схема позволяет службам Mobile Services автоматически добавлять столбец userId в таблицу TodoItem при первом выполнении сценария. Динамическая схема включена по умолчанию для каждой новой мобильной службы. Перед публикацией приложения в Магазине Windows ее необходимо отключить.

8. Повторите шаги 3 и 4, чтобы заменить существующую операцию Read следующей функцией:

function read(query, user, request) {  query.where({ userId: user.userId });     request.execute(); }

Этот скрипт фильтрует возвращенные объекты TodoItem таким образом, чтобы каждый пользователь получал только те элементы, которые вставлял сам.

Проверка приложения

1. Откройте в Eclipse проект, который вы изменили, в ходе выполнения практической работы Как проверить подлинность.

2. В меню Run (Выполнение) нажмите Run (Выполните), чтобы запустить приложение и выполнить вход с использованием выбранного вами поставщика удостоверений.

Обратите внимание, что на этот раз никакие элементы не возвращаются, хотя в таблице TodoItem и присутствуют элементы, созданные в ходе выполнения предыдущих практических работ. Это происходит потому, что созданные ранее элементы вставлялись без столбца userId и теперь имеют нулевые значения.

3. В приложении введите текст в поле Insert a TodoItem (Вставить в таблицу) и нажмите кнопку Save (Сохранить).

В таблицу TodoItem мобильной службы будут вставлены текст и значение userID. Так как новому элементу присвоено правильное значение userId, он возвращается мобильной службой и отображается во втором столбце.

4. Вернитесь в таблицу todoitem в портале управления, нажмите Browse (Просмотреть) и убедитесь, что у всех вновь добавленных элементов есть сопоставимые значения userId.

5. (Не обязательно) Если у вас есть другие учетные записи, выполните приложение еще раз с ними  и убедитесь в том, что пользователи видят только свои данные. При появлении диалогового окна входа в систему введите другие учетные данные и убедитесь в том, что элементы, введенные во время сеанса с предыдущей учетной записью, не отображаются.