如何在 Angular 控制器中更改 Satellizer 的 $authProvider.loginUrl
How to change Satellizer's $authProvider.loginUrl inside an Angular controller?
这是我的情况场景:
- 用户未登录,他们尝试访问/settings 页面。
- "我的设置"控制器根据
$auth.isAuthenticated() != true
识别它们未登录,并将其重定向到/login - 用户填写他们的电子邮件和密码并点击提交。
我想在第三步中做的是将它们重定向到/settings 页面,而不是主页。
我想我会改变这个变量:
$authProvider.loginRedirect = '/';
问题是我无法在loginCtrl.js
文件中包含$authProvider
,而不会在我的控制台中收到"未知提供程序"错误:https://docs.angularjs.org/error/$injector/unpr?p0= 换句话说,当我尝试包含它时,Angular 无法识别$authProvider
。以下是我的loginCtrl.js
文件的外观:
/* Everything is blowing up because I'm trying to include $authProvider */
angular.module("PrayerChain")
.controller("loginCtrl", ["$rootScope", "$scope", "$state", "$http", "$auth", "$authProvider", loginCtrl]);
function loginCtrl($rootScope, $scope, $state, $http, $auth, $authProvider) {
$authProvider.loginRedirect = '/settings';
$scope.login = function () {
$auth.login({ Email: $scope.email, Password: $scope.password })
.then(function() {
})
.catch(function (response, status, headers) {
console.log(response);
$scope.error = JSON.parse(response.data);
});
};
}
是否可以在控制器中包含$authProvider
?如果没有,在使用Satellizer登录时更改人们重定向位置的替代解决方案是什么?
谢谢。
通常只能在配置时访问提供程序对象,而控制器是在运行时创建的。如果您需要设置身份验证提供程序,请尝试执行以下操作:
angular.module('PrayerChain').config(
[ "$authProvider",
function($authProvider) {
$authProvider.loginRedirect = '/settings';
}
]).controller("loginCtrl",
// ...
新版本
(0.12.5)不再使用此设置。您需要在控制器中设置 url
$auth.login({ Email: $scope.email, Password: $scope.password })
.then(function() {
$location.path('your-new-route');
})
.catch(function (response, status, headers) {
console.log(response);
$scope.error = JSON.parse(response.data);
});
我一直在寻找这样做,发现在 0.13.0 版本中(也许更早login
?
$auth
.login(user, {
url: config.api + '/authenticate/customer'
})
相关文章:
- 当达到codeigniter/tank auth会话超时时,在ajax调用中处理php重定向
- 对auth.logout的Facebook事件订阅仅选择性地将用户重定向到url
- 为什么我会得到一个“;auth失败”;使用正确的凭据连接到MongoDB时出错
- FB.Event.subscribe auth.statusChange未在Angular JS中启动
- “Ember Simple Auth”使组件的会话无效
- 如何在 Angular 控制器中更改 Satellizer 的 $authProvider.loginUrl
- Auth$getUser返回null,即使用户已登录(AngularFire,Firebase)
- 在Mocha和SuperTest中设置基本Auth
- facebook FB.Event.subscribe('auth.authResponseChange'
- WCF Restful Service (Windows Auth) with JSONP
- 邮件帐户中未收到ion auth忘记密码邮件
- 如何在 JavaScript 的 HTTP 标头中传递 X-Auth-Token
- ng-token-auth redirct to login page when auth:invalid
- Google JS API: gapi.auth.signIn 回调函数问题
- ng-token-auth ui 路由器解析器会导致屏幕空白
- Auth laravel5-角形材料启动器的本地存储
- GET x-Auth-Token via JavaScript/Angular/Ionic Promise
- Google OAuth gapi.auth.authorize X-Frame-Options: SAMEORIGIN
- 在 ember-simple-auth 中关闭浏览器时使会话无效
- 对于javascript,对api“gapi.auth.authorize”的调用不会执行Google Analytic