在服务器上使用 AWS Amplify Auth 和自定义 auth-storage

伊斯梅尔

我有一个服务器端呈现的反应应用程序,它Auth.CurrentAuthenticatedUser在显示受保护的页面之前调用 Amplify 的方法来检查身份验证。
在客户端,我使用cookieStorage. 它工作得很好,因为在Auth.CurrentAuthenticatedUser通过 react-router 访问受保护路由时成功检索到凭据BrowserRouter
在服务器端(当受保护的路由通过直接 http 调用访问时),我对 Amplify 使用以下配置:

import cookie from 'cookie';

class ServerCookieStorage {
  constructor(requestCookie) {
    this.cookieObj = {};
    if (requestCookie) this.cookieObj = cookie.parse(requestCookie);
  }
  setItem(key, value) {
    this.cookieObj[key] = value;
  }
  getItem(key) {
    return this.cookieObj[key];
  }
  removeItem(key) {
    this.cookieObj[key] = '';
  }
}

Amplify.configure({
  Auth: {
    identityPoolId: 'placeholder',
      region: 'placeholder',
      userPoolId: 'placeholder',
      userPoolWebClientId: 'placeholder',
      storage: new ServerCookieStorage(event.headers.Cookie);
      //cookie header in aws lambda functions is located in event.header.Cookie
  }
});

我已经记录了进入setItemgetItem方法的内容,并且在Auth.CurrentAuthenticatedUser调用方法时似乎可以正常检索所有信息,但是该方法因错误而失败Not Authenticated

我在这里错过了什么吗?

伊斯梅尔

我意识到它在Auth.CurrentAuthenticatedUser幕后使用了该fetch方法,这就是它失败的原因。解决方案是fetch为 node using提供一种polyfill 方法node-fetch,我是这样做的:

const fetch = require('node-fetch');
global.fetch = fetch;

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

AWS Amplify Auth:如何禁用AmplifyConfirmSignUp?

来自分类Dev

AWS Amplify Google Auth用户未重定向回

来自分类Dev

Android应用程序中的AWS Amplify Cognitio Auth错误

来自分类Dev

AWS Amplify上具有自定义服务器的下一个Js App主机

来自分类Dev

使用mod_auth_cas和自定义登录单点登录

来自分类Dev

使用mod_auth_cas和自定义登录单点登录

来自分类Dev

AWS Amplify和无服务器堆栈

来自分类Dev

在使用自定义用户模型和UserManager的python-social-auth创建django用户时出现问题

来自分类Dev

登录自定义路由被Auth拒绝

来自分类Dev

将Xamarin.Auth与自定义终结点/ Web服务结合使用

来自分类Dev

使用Ember Simple Auth使用自定义身份验证器注销用户

来自分类Dev

如何在Nuxt.js上使用自定义域设置Auth0

来自分类Dev

如何配置CakePHP的$ this-> Auth-> login()以使用自定义密码哈希器

来自分类Dev

django-rest-auth:自定义注册序列化器不保存自定义字段

来自分类Dev

如何在Laravel 4上执行自定义auth :: attempt消息

来自分类Dev

Cakephp Auth的自定义查找器,具有相关模型

来自分类Dev

将Laravel 5 Auth与自定义表字段名称一起使用?

来自分类Dev

使用mod_auth_openidc对自定义Web应用程序进行身份验证

来自分类Dev

使用python-social-auth创建自定义注册管道

来自分类Dev

如何使用Ember Simple Auth获取自定义会话的属性

来自分类Dev

自定义django auth后端未使用基本登录视图登录用户

来自分类Dev

春季安全:不是自定义的UserDetailsService称为(使用Auth0认证)

来自分类Dev

为什么laravel 6 auth使用自定义防护重定向后返回false?

来自分类Dev

如何为django-graphql-auth使用自定义用户模型

来自分类Dev

如何使用laravel通过auth中间件开发自定义登录

来自分类Dev

将Laravel 4 Auth与自定义表名称一起使用

来自分类Dev

Laravel 4:如何使Auth组件使用users表中的自定义ID

来自分类Dev

在Auth0中使用通用(自定义)连接

来自分类Dev

使用JWT和Auth0的AWS API Gateway身份验证错误IncompleteSignatureException

Related 相关文章

  1. 1

    AWS Amplify Auth:如何禁用AmplifyConfirmSignUp?

  2. 2

    AWS Amplify Google Auth用户未重定向回

  3. 3

    Android应用程序中的AWS Amplify Cognitio Auth错误

  4. 4

    AWS Amplify上具有自定义服务器的下一个Js App主机

  5. 5

    使用mod_auth_cas和自定义登录单点登录

  6. 6

    使用mod_auth_cas和自定义登录单点登录

  7. 7

    AWS Amplify和无服务器堆栈

  8. 8

    在使用自定义用户模型和UserManager的python-social-auth创建django用户时出现问题

  9. 9

    登录自定义路由被Auth拒绝

  10. 10

    将Xamarin.Auth与自定义终结点/ Web服务结合使用

  11. 11

    使用Ember Simple Auth使用自定义身份验证器注销用户

  12. 12

    如何在Nuxt.js上使用自定义域设置Auth0

  13. 13

    如何配置CakePHP的$ this-> Auth-> login()以使用自定义密码哈希器

  14. 14

    django-rest-auth:自定义注册序列化器不保存自定义字段

  15. 15

    如何在Laravel 4上执行自定义auth :: attempt消息

  16. 16

    Cakephp Auth的自定义查找器,具有相关模型

  17. 17

    将Laravel 5 Auth与自定义表字段名称一起使用?

  18. 18

    使用mod_auth_openidc对自定义Web应用程序进行身份验证

  19. 19

    使用python-social-auth创建自定义注册管道

  20. 20

    如何使用Ember Simple Auth获取自定义会话的属性

  21. 21

    自定义django auth后端未使用基本登录视图登录用户

  22. 22

    春季安全:不是自定义的UserDetailsService称为(使用Auth0认证)

  23. 23

    为什么laravel 6 auth使用自定义防护重定向后返回false?

  24. 24

    如何为django-graphql-auth使用自定义用户模型

  25. 25

    如何使用laravel通过auth中间件开发自定义登录

  26. 26

    将Laravel 4 Auth与自定义表名称一起使用

  27. 27

    Laravel 4:如何使Auth组件使用users表中的自定义ID

  28. 28

    在Auth0中使用通用(自定义)连接

  29. 29

    使用JWT和Auth0的AWS API Gateway身份验证错误IncompleteSignatureException

热门标签

归档