2014-05-19 3 views
0

Аутентификация на Webapi, только с клиентской стороны oauth provider (FB и т. Д.) (Приложение для телефона HTML5/JS).Аутентификация Webapi с использованием только клиентской стороны

Это хитрая, Так что я могу проверить подлинность нашего WebAPI, используя имя пользователя и пароль, с помощью JS из HTML клиента, передавая имя пользователя & пароля в качестве параметров через HTTPS, мы можем установить пользователь разрешены, чтобы они могли получить доступ к дополнительный контроллер (ы) для обновлений БД и т. д., настолько хороший медведь со мной.

Я могу выполнить проверку подлинности на FB, используя MVC и настроить пользователя на авторизацию.

Я могу сделать то же самое с HTML & Сторона JS-клиента (hooray), теперь, как я тогда авторизую контроллер, ОК, я получаю от пользователей электронную почту от FB, так что, кто-нибудь мог это передать. Предположим, я мог перенаправить на страницу MVC (от клиента), а затем установить auth на контроллере таким образом, но это просто не хорошо (отправка пользователю из приложения или поп-окно).

Каков наилучший способ аутентификации пользователя с клиентом и авторизации контроллеров webapi в одно и то же время, необходимо ли перенаправить пользователя на страницу mvc и сделать это таким образом, как это делается для других телефонные приложения/телефонные разрывы/intel xdk?

+0

Так что, если я получить маркер доступа от API JS http://stackoverflow.com/questions/6126517/retrieve-access-token-using-javascript-api и отправить его через HTTPS на webpai, и использовать график FB – saj

+0

cough ...., который занял больше пяти минут ..... Итак, если я получу токен доступа из JS, отправьте это через HTTPS на webapi, отправьте его на график FB https://graph.facebook.com/me?access_token=YOUR_ACCESS_TOKEN, изнутри web api, затем авторизуйте контроллер ((ы), это безопасно, может быть ...? – saj

+0

Аутентификация может быть выполнена только на стороне сервера, вы только когда-либо аутентифицируйте свою личность с сервером. Вы сталкиваетесь с проблемами с кросс-скриптовыми скриптами. Кроме того, это не безопасно. –

ответ

0

Метод, по-видимому, есть, например, facebook, но процесс для любого поставщика oauth одинаковый, получает токен доступа, заставляя пользователя входить в систему. Подтвердить токен является подлинным с использованием API-интерфейса сервера (в графическом API-интерфейсе FB) Клиент успешно подключился, пока токен доступа не истечет. По истечении срока действия (2 часа по умолчанию) перенаправление пользователя на повторный вход в систему, известно, что приложение должно аутентифицироваться без повторного входа, если пользователь не отозвал авторизацию в вашем приложении.

вот ссылка о том, как обрабатывать истекают маркер доступа (примеры PHP)

Не совсем элегантный, но это то, что она есть, и я думал, что это было только для супер вундеркиндов!

Извините, чтобы ответить на мой собственный вопрос