Git Product home page Git Product logo

angular-web-api2-auth's Introduction

angular-web-api2-auth Build Status

Angular provider for integration with WebAPI2 token authentication

bower install angular-web-api2-auth

Usage

//Register dependancy
angular.module('yourApp', ['kennethlynne.webAPI2Authentication'])

angular.module('yourApp').config(function (webAPIAuthProvider) {

    webAPIAuthProvider.setAPIUrl('https://your-api.com'); //Only requests to this endpoint will get the Authorization headers modified
    webAPIAuthProvider.setTokenEndpointUrl('your-api.com/token');
    webAPIAuthProvider.setExternalUserInfoEndpointUrl('your-api.com/externalUserInfo');
    webAPIAuthProvider.setRegisterExternalUserEndpointUrl('your-api.com/registerExternal');

});

angular.module('yourApp').controller(function (webAPIAuth, $window) {

    // bearer, username, password
    webAPIAuth.login('password', 'John_doe', 'password123')
    
    .then(function () {
        //Every request to the API will have its Authorization header set
        
        webAPIAuth.isLoggedIn(); //true
        
        webAPIAuth.getToken(); //Returns the token, obviously
        
        webAPIAuth.logout();
    
    })
    
    .catch()
       
    $scope.openExternalLoginWindow = function(url){
    
          function handler(event) {
              popup.close();
              var token = event.data;
              webAPIAuth
                  .getExternalUserInfo(token)
                  .then(function(userInfo){
                      if (userInfo.hasRegistered)
                        $state.go('dashboard');
                      else
                      {
                          webAPIAuth
                              .registerExternalUser(token, userInfo.userName)
                              .then(function(){
                                  $state.go('dashboard')
                              })
                      }
                  });
          }
    
          window.addEventListener('message', handler);
          var cfg = [
                                'location=false',
                                'height=650',
                                'width=600',
                                'menubar=false',
                                'toolbar=false',
                                'top=200',
                                'left=200'
                            ].join(', ');
                            
          var popup = $window.open(url, '_blank', cfg);
    
        };

});

angular-web-api2-auth's People

Contributors

arealmaas avatar herreruud avatar kennethlynne avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.