我一直在尝试关注this指南,让我的自定义登录屏幕在本地使用我的角度应用。我挣扎的部分是我的登录回调永远不会被调用。
我的原始登录网址为http://localhost:9000/#/login
angular.module('myApp').service('authService', function ($location, angularAuth0) {
function login(username, password, callback) {
console.log('in login service');
angularAuth0.login({
connection: 'Username-Password-Authentication',
responseType: 'token',
email: username,
password: password
}, function(err) {
console.log('we NEVER get here');
});
}
return {
login: login
};
});
angular.module('myApp').controller('LoginCtrl', function ($scope, $location, authService) {
$scope.login = function() {
...
authService.login($scope.user.email, $scope.user.password)
当我登录时,我被重定向到http://localhost:9000/#/access_token<myaccesstoken>&id_token=<myIdToken>&token_type=Bearer
为什么我会被重定向到这个网址,我的回调永远不会被调用?
此外,我应该使用他们在指南中创建的这个函数authenticateAndGetProfile()
吗?
答案 0 :(得分:2)
好的,在与Auth0支持团队合作时,似乎他们的文档遗漏了这一部分,后来又添加了:
Register the authenticateAndGetProfile in app.run.js so that authentication results get processed after login.
// app.run.js
(function () {
'use strict';
angular
.module('app')
.run(function (authService) {
// Process the auth token if it exists and fetch the profile
authService.authenticateAndGetProfile();
});
})();
这是缺失的部分,现在一切正常。