如何在Identity 2.1 SPA Angular JS应用程序中处理电子邮件确认URL?

时间:2014-12-02 11:32:34

标签: angularjs asp.net-identity asp.net-identity-2

我见过一个使用MVC的例子。它有一个返回URL,它会显示一个从发出的电子邮件中调用的屏幕。但我有一个SPA AngularJS应用程序,所以它有点不同。有没有人试图用SPA来做这件事,如果有的话,他们是如何实现它的。任何指针都将非常感激。

1 个答案:

答案 0 :(得分:1)

我现在正在努力;需要更多的工作来使它变得漂亮和诸如此类,但希望你能得到一般的想法。

确认网址如下:

http://localhost:8000/app.html#/confirm/9a28aa89e84e80153b1f2083d38911acbae12e8365dd13c83cee55f79481e1f8

(localhost:8000,因为我正在测试)。然后我有一个ui-router路由:

var confirm = {
    name: 'confirm',
    url: '/confirm/:auth',
    templateUrl: 'app/front/partial/confirm.html',
    params: {auth: {}}
    } ;
$stateProvider.state(confirm) ;

confirm.html部分(显然需要充实!)是:

<div ng-controller="Fapi.Front.Confirm.Ctrl">
  CONFIRM
</div>

,控制器是:

angular.module('myApp')
    .controller('App.Front.Confirm.Ctrl', [
        '$scope', '$state', '$stateParams', 'toaster', 'MyDataService',
        function ($scope, $state, $stateParams, toaster, MyDataService) {
            MyDataService.confirm (
                {auth: $stateParams.auth},
                function (data) {
                    toaster.pop('success', 'Your registration has been confirmed') ;
                    setTimeout(function () { $state.go('login') }, 5000) ;
                    },
                function (data) {
                    toaster.pop('error', data.message) ;
                    }
                )
        }]) ;

MyDataService只是一个将$ http调用包装到服务器的服务。

因此,不是“通常”的情况,而是URL调用服务器上的脚本进行工作,然后呈现“你已经确认”(或不是)页面,这里路由器将浏览器带到然后,该页面向服务器发出AJAX调用以进行确认。