Skip to content
This repository has been archived by the owner on Oct 16, 2019. It is now read-only.

logout from auth0 is not working #41

Open
sashr17 opened this issue Nov 7, 2016 · 2 comments
Open

logout from auth0 is not working #41

sashr17 opened this issue Nov 7, 2016 · 2 comments

Comments

@sashr17
Copy link

sashr17 commented Nov 7, 2016

// home.controller.js

vm.logoutFromAuth0 = function() {
angularAuth0.logout({returnTo: 'http://localhost:3001/'});
authService.logout();
}

After logging out, its not redirecting to 'http://localhost:3001/'

@MattWood21
Copy link

Assuming you're using Angular 1.x with UI-Router as in the examples?

If so you in auth.service.js have this. Note the addition of $state.go('Login'); for UI-Router to go to that state on logout but it can be any UI-Router state.

// auth.service.js

function logout() {
            localStorage.removeItem('id_token');
            localStorage.removeItem('profile');
            authManager.unauthenticate();
            $state.go('Login');
        }

I just inject the authService into the main controller then add the ngClick directive onto any element I want the user to click to logout (not sure if assigning authService to vm is truly necessary or not):

// home.controller.js

angular
      .module('app')
      .controller('HomeController', HomeController);

    HomeController.$inject = ['$scope', 'authService', '$state'];

    function HomeController($scope, authService, $state) {
        var vm = this;
        vm.authService = authService;
         .... 
    }

And add ngClick directive in html:

// home.html

<a class="dropdown-menu__item" href="#" ng-click="authService.logout()">Log Out</a>

@chenkie
Copy link
Contributor

chenkie commented Dec 2, 2016

@sashr17 you'll need to whitelist your logout URL in your Auth0 dashboard. This can either be done globally for all clients from here: https://manage.auth0.com/#/account/advanced

Or (recommended) you should whitelist a logout URL for only the client you're interested in. The spot to do this can be found in the client settings of that particular client in the Auth0 dashboard.

For the second option, you'll need to provide the client_id in your logout call as such:

angularAuth0.logout({
  returnTo: 'http://localhost:3000/',
  client_id: AUTH0_CLIENT_ID
});

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants