我正在发送一封包含邀请链接的电子邮件,但我在使用电子邮件中附加的链接时遇到问题,类似于myapp.com/#/invitation/J5QSXr9/token/J6ixelV3
. 当我点击它时,它总是自动重定向到我myapp.com/#/login
不想要的默认页面。真正奇怪的是,当我点击浏览器时,它会正确显示网页。我在路由提供者中定义的是:
var myApp = angular.module('myApp', ["firebase"]).config(
['$routeProvider',
function($routeProvider){
$routeProvider.when('/login', {templateUrl:'partials/login.html', controller:'LoginCtrl'});
$routeProvider.when('/todos', {templateUrl:'partials/todos-list.html', controller:'TodosListCtrl', authRequired:true, pathTo: '/todos'});
$routeProvider.when('/todos/:todosId', {templateUrl:'partials/todos-detail.html', controller:'TodoCtrl', authRequired:true});
$routeProvider.when('/invitation/:todosId/token/:tokenNum', {templateUrl:'partials/invitation.html', controller:'InvitationCtrl', authRequired:false});
$routeProvider.otherwise({redirectTo:'/login'});
}]
)
// establish authentication
.run(['angularFireAuth', '$rootScope', function(angularFireAuth, $rootScope) {
var url="https://myapp.firebaseio.com/";
angularFireAuth.initialize(url, {scope: $rootScope, name: "user", path:"/login"});
}]);
您会注意到我正在使用 angular$routeProvider
来执行此操作,并且我正在使用 Firebase 和 angularFire,并且为了进行我正在使用的身份验证angularFireAuth
(就像 Anant 在此处描述的那样)。所以路由/invitation/:todosId/token/:tokenNum
不应该要求身份验证,请注意我设置authRequired:false
了任何人都可以访问它,但它不断重定向到/login
. 看起来很奇怪的是浏览器历史记录显示页面,所以当我点击浏览器时,页面显示并正常工作。
任何想法为什么会发生这种情况?