Ember Simple Auth vs Torii

  1. Ember Simple Auth vs. Torii
  2. Простой Auth OAuth 2.0 против OAuth 2.0 Тории
  3. Авторизация роли через Ember Simple Auth
  4. Зачем использовать Ember.js против AngularJS
Этот пост будет охватывать Ember Simple Auth против Тории Как использовать Simple Auth и Torii вместе, как получить пользовательские данные с помощью Ember Simple Auth. Также будет кратко рассказано, почему Марко Отте-Витте, автор Ember Simple Auth, выбрал Ember вместо AngularJS. Эта статья основана на Часы работы Кодементора организовано Марко. Вы можете прочитать обзор того, что делает Ember Simple Auth Вот ,

Ember Simple Auth vs. Torii

Простая аутентификация - это больше о поддержании событий сеанса / сеанса, обеспечении основы для аутентификации стратегии и авторизации запросов. Тории больше о взаимодействии с этими внешними аутентификациями. Так что, не похоже, что Simple Auth и Torii не могут существовать рядом.

Вы можете увидеть, как я использовал Simple Auth и Torii вместе в этом Пример Github ,

App.LoginRoute = Ember.Route.extend ({actions: {// действие для запуска аутентификации с помощью Facebook authenticateWithFacebook: function () {this.get ('session'). Authenticate ('simple-auth-authenticator: torii', ' facebook-oauth2 ');}, // действие для запуска аутентификации с помощью Google+ authenticateWithGooglePlus: function () {this.get (' session '). authenticate (' simple-auth-authenticator: torii ',' google-oauth2 '); }}});

В этом примере я хотел бы аутентифицировать сеанс с учетной записью Facebook через провайдера OAuth 2.0 Facebook, и Torii запустил бы диалог Facebook. Таким образом, в этом примере Simple Auth оборачивает механизм Torii для взаимодействия с Facebook в аутентификатор Simple Auth. Короче говоря, Тории управляет только общением с третьими лицами.

Простой Auth OAuth 2.0 против OAuth 2.0 Тории

Механизм Simple Auth OAuth 2.0 - это тип предоставления владельца ресурса и пароля. Это формализация процесса, когда вы отправляете имя пользователя и пароль на сервер, а взамен получаете доступ к нему.

Это не поток OAuth 2.0, который Torii реализует для Facebook, поскольку он реализует поток, в котором у вас есть перенаправления и т. Д. Именно поэтому Torii откроет новое окно. Как только происходит это перенаправление, он использует сообщение для уведомления приложения о том, что вход был успешным. Это очень сложно, но Тории справится со всем этим для вас.

Тем не менее, вы действительно не можете сравнить тот тип предоставления прав владельца ресурса, который используется в Simple Auth, с тем, который реализует Torii, если это две разные вещи. Если вы хотите реализовать приложение Facebook с простой аутентификацией и не использовать Torii для этого, вам, вероятно, потребуется использовать что-то вроде Facebook SDK вместо того, чтобы строить все это.

Кроме того, при получении пользовательских данных вы не хотите использовать этот токен для запросов к вашему собственному API. Обычно вы меняете тот токен, который вы получили от Facebook, на токен на предъявителя для своего собственного API, где вы также проверяете токен Facebook на стороне сервера, а также извлекаете некоторые пользовательские данные из Facebook и сохраняете их локально в база данных.

Если у вас может быть три внешних провайдера (например, Twitter, G + и т. Д.), Вы получите от них три разных токена, и вам придется хранить все эти токены в вашей пользовательской записи на стороне сервера. Это сделано для того, чтобы вы могли действительно идентифицировать пользователя, когда у вас есть входящий запрос на один из этих токенов. Однако в идеале вы хотели бы иметь один механизм авторизации, который будет использоваться для всех входящих запросов. Например, вы должны отправить токен Facebook на свой сервер, как только вы его получите, проверить его, а затем вернуть токен канала-носителя (это единственный и единственный токен, который вы используете для идентификации этого пользователя в запросах API). Итак, канал-носитель токен более или менее предназначен для оптимизации взаимодействия между клиентом и сервером.

Авторизация роли через Ember Simple Auth

В Ember Simple Auth есть две части управления ролями. Во-первых, у вас есть часть пользовательского интерфейса, где вы не отображаете определенные вещи для клиентской стороны.

{{if session.isAuthenticated}}

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

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

Зачем использовать Ember.js против AngularJS

Мне более или менее приходилось создавать Simple Auth поверх Ember, потому что я начал использовать его в то время, когда среда еще находилась на ранней стадии, поэтому для нее не было библиотек аутентификации.

Тем не менее, я выбрал Ember вместо Backbone или Angular, потому что я работал с Rails около 8 лет или около того. Если вы посмотрите на Ember и пришли из истории Rails, то подумали, что это более или менее одно и то же. Он просто запускается в браузере, но все же имеет очень знакомые концепции и структуру.

В целом, как разработчик Rails, вход в Ember был очень плавным переходом. Вы получите всю эту принудительную структуру и четкие способы, как в Rails, и вы по-настоящему оцените Ember.