Emberjs:如何在自定义身份验证初始化程序中使会话无效

帕纳焦蒂斯

我将Cookie认证使用ember-simple-auth 1.1.0,并创建了一个具有功能(恢复,认证和无效)的自定义身份验证器以及该自定义身份验证器的初始化程序。

我绑定了ajaxError事件,因此我们可以捕获任何错误。例如,使用服务器响应401未授权访问路由。我想使会话无效,并将用户重定向回登录页面。

目前,我无法在初始化程序中获得ember-simple-auth默认会话,因此我可以使该会话无效。我没有为我的应用程序创建任何自定义会话。

做这个的最好方式是什么?

如果不可能,是否最好在初始化器上触发一个事件并在路由中捕获该事件?我们该怎么做?

我的自定义初始化程序如下所示:

import BasicAuthenticator from '../authenticators/basic';

export default {
  before: 'ember-simple-auth',
  name: 'basic-authenticator',
  initialize(application) {
    application.register('authenticator:basic', BasicAuthenticator);
    Ember.$(document).ajaxError((event, jqxhr, settings, reason) => {
      if (jqxhr.status === 401) {

      }
    });
  }
};

我的自定义身份验证器:

import Ember from 'ember';
import Base from 'ember-simple-auth/authenticators/base';

export default Base.extend({
  restore() {
    return new Ember.RSVP.Promise(function(resolve, reject) {
      let sessionCookie = window.Cookies.get('beaker.session.id');
      if(!window.isUndefined(sessionCookie)) {
        resolve(true);
      }else{
        reject();
      }
    });
  },
  authenticate(data) {
    return new Ember.RSVP.Promise(function (resolve, reject) {
      Ember.$.ajax({
        type: 'post',
        url: '/core/authentication/basic/login',
        data: data
    }).then((response) => {
        resolve({
          responseText: response
        });
      }, (error) => {
        reject(error);
      });
    });
  },
  invalidate() {
    return new Ember.RSVP.Promise(function (resolve, reject) {
      Ember.$.ajax({
        type: 'post',
        url: '/core/authentication/basic/logout'
      }).then(() => {
         resolve(true);
       }, () => {
         reject();
      });
    });
  }
});
帕纳焦蒂斯

我找到了有关如何在初始化程序中获取会话的解决方案。

在我发现的解决方案下方:

import BasicAuthenticator from '../authenticators/basic';

export default {
  before: 'ember-simple-auth',
  name: 'basic-authenticator',
  initialize(application) {
    application.register('authenticator:basic', BasicAuthenticator);
    Ember.$(document).ajaxError((event, jqxhr, settings, reason) => {
      let service = application.__container__.lookup('service:session');
      let session = service.get('session');
      if (jqxhr.status === 401) {
       session.invalidate();
      }
    });
  }
};

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Emberjs:如何在自定义身份验证初始化程序中使会话无效

来自分类Dev

如何在UICollectionViewCompositionalLayout中使用UICollectionViewController的自定义初始化程序?

来自分类Dev

如何在Bot框架中使用自定义身份验证服务器?

来自分类Dev

如何在ember cli中使用自定义授权者和自定义身份验证器进行ember简单身份验证

来自分类Dev

如何在 tensorflow 或 pytorch 中使用自定义权重初始化创建自定义神经网络

来自分类Dev

如何在自定义初始化程序中快速返回nil?

来自分类Dev

如何在自定义非Google登录网络应用中使用GoogleAuthenticator进行tfa(两因素身份验证)

来自分类Dev

未调用自定义身份验证提供程序

来自分类常见问题

如何在Swift中使用XIB文件初始化/实例化自定义UIView类

来自分类Dev

如何将自定义对象从自定义身份验证提供程序传递到控制器?

来自分类Dev

如何在Objective-C中使用自定义构造函数初始化自动成员

来自分类Dev

如何使用Windows身份验证和自定义角色提供程序设置OWIN

来自分类Dev

如何使用Silex框架实现自定义身份验证成功处理程序?

来自分类Dev

致命错误:在自定义NavigationController中使用未实现的初始化程序

来自分类Dev

如何使用GraphQL自定义身份验证类?

来自分类Dev

使用 Devise,如何自定义失败的身份验证?

来自分类Dev

如何在WCF服务中为自定义绑定配置Windows身份验证?

来自分类Dev

如何在Azure移动应用中实现自定义身份验证

来自分类Dev

如何在Swift中自定义Firebase身份验证UI

来自分类Dev

如何在 Laravel 中进行自定义身份验证查询

来自分类Dev

如何在 AWS 自定义授权方中对用户进行身份验证?

来自分类Dev

自定义类的初始化程序中的配置

来自分类Dev

Laravel自定义身份验证

来自分类Dev

Laravel自定义身份验证

来自分类Dev

自定义ServiceStack身份验证

来自分类Dev

JMeter自定义身份验证

来自分类Dev

Django身份验证自定义

来自分类Dev

如何在emberjs中使用自定义“抽象”路由

来自分类Dev

如何为自定义UITableViewCell类设置初始化程序?

Related 相关文章

  1. 1

    Emberjs:如何在自定义身份验证初始化程序中使会话无效

  2. 2

    如何在UICollectionViewCompositionalLayout中使用UICollectionViewController的自定义初始化程序?

  3. 3

    如何在Bot框架中使用自定义身份验证服务器?

  4. 4

    如何在ember cli中使用自定义授权者和自定义身份验证器进行ember简单身份验证

  5. 5

    如何在 tensorflow 或 pytorch 中使用自定义权重初始化创建自定义神经网络

  6. 6

    如何在自定义初始化程序中快速返回nil?

  7. 7

    如何在自定义非Google登录网络应用中使用GoogleAuthenticator进行tfa(两因素身份验证)

  8. 8

    未调用自定义身份验证提供程序

  9. 9

    如何在Swift中使用XIB文件初始化/实例化自定义UIView类

  10. 10

    如何将自定义对象从自定义身份验证提供程序传递到控制器?

  11. 11

    如何在Objective-C中使用自定义构造函数初始化自动成员

  12. 12

    如何使用Windows身份验证和自定义角色提供程序设置OWIN

  13. 13

    如何使用Silex框架实现自定义身份验证成功处理程序?

  14. 14

    致命错误:在自定义NavigationController中使用未实现的初始化程序

  15. 15

    如何使用GraphQL自定义身份验证类?

  16. 16

    使用 Devise,如何自定义失败的身份验证?

  17. 17

    如何在WCF服务中为自定义绑定配置Windows身份验证?

  18. 18

    如何在Azure移动应用中实现自定义身份验证

  19. 19

    如何在Swift中自定义Firebase身份验证UI

  20. 20

    如何在 Laravel 中进行自定义身份验证查询

  21. 21

    如何在 AWS 自定义授权方中对用户进行身份验证?

  22. 22

    自定义类的初始化程序中的配置

  23. 23

    Laravel自定义身份验证

  24. 24

    Laravel自定义身份验证

  25. 25

    自定义ServiceStack身份验证

  26. 26

    JMeter自定义身份验证

  27. 27

    Django身份验证自定义

  28. 28

    如何在emberjs中使用自定义“抽象”路由

  29. 29

    如何为自定义UITableViewCell类设置初始化程序?

热门标签

归档