logout from auth0 is not working
// home.controller.js
vm.logoutFromAuth0 = function() { angularAuth0.logout({returnTo: 'http://localhost:3001/'}); authService.logout(); }
After logging out, its not redirecting to 'http://localhost:3001/'
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>
@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
});