AngularJS + OAuth

Я пытаюсь написать решение для входа в приложение Angular,
Это означает, что пользователь может напрямую подключаться через Facebok/Google/Twitter или зарегистрироваться.
Я нашел Angular-OAuth, чтобы быть полезным, но, похоже, он не работал с Facebook (или Twitter).

Кто-нибудь знает о всеобъемлющем решении для этого?

Ответ 1

Взгляните на oauth.io

  • Простая реализация в Javascript
  • 80 + провайдеры OAuth
  • Быстрое и безопасное

Ответ 2

Вот простой пример, используя только переадресацию с помощью angular js

Вот как перенаправить на аутентификацию

angular.module('angularoauthexampleApp')
  .controller('MainCtrl', function ($scope) {
    $scope.login=function() {
        var client_id="your client id";
        var scope="email";
        var redirect_uri="http://localhost:9000";
        var response_type="token";
        var url="https://accounts.google.com/o/oauth2/auth?scope="+scope+"&client_id="+client_id+"&redirect_uri="+redirect_uri+
        "&response_type="+response_type;
        window.location.replace(url);
    };
  });

Вот как обрабатывать перенаправление после аутентификации

angular
  .module('angularoauthexampleApp', [
  ])
  .config(function ($routeProvider) {
    $routeProvider
      .when('/access_token=:accessToken', {
        template: '',
        controller: function ($location,$rootScope) {
          var hash = $location.path().substr(1);

          var splitted = hash.split('&');
          var params = {};

          for (var i = 0; i < splitted.length; i++) {
            var param  = splitted[i].split('=');
            var key    = param[0];
            var value  = param[1];
            params[key] = value;
            $rootScope.accesstoken=params;
          }
          $location.path("/about");
        }
      })
  });

Более полная информация здесь http://anandsekar.github.io/oauth2-with-angularjs/

Ответ 3

Существует альтернатива Free-Open-Source для freemium oauth.io: hello.js

Ответ 4

Посмотрите проект Satellizer на Github. Я только начинаю с этого, это кажется многообещающим.

Он использует JSON Web Tokens и разрешает логин с: электронной почтой + паролем, Facebook, Twitter, Google и любым другим поставщиком OAuth 1.0/2.0.

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