首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Auth0-角不是很好地工作与角SSR通用

Auth0-角不是很好地工作与角SSR通用
EN

Stack Overflow用户
提问于 2022-04-26 11:07:14
回答 1查看 107关注 0票数 1

我有一个角13应用程序,使用@auth0/auth0-angular。当我尝试实现SSR时,它会抛出没有定义窗口的错误。我在server.ts中添加了以下内容

代码语言:javascript
复制
  const domino = require('domino');
  const fs = require('fs');
  const path = require('path');
  const template = fs.readFileSync(path.join(__dirname, '..', 'browser', 'index.html')).toString();
  const win = domino.createWindow(template);
  global['window'] = win;
  global['document'] = win.document;

这解决了一些问题,但是经过几个小时的故障排除后,我才知道其余的错误都是由Auth0,@auth0/auth0-angular提出的。

我在@auth0/auth0-angular文档中阅读,在angular-universal docs中阅读。我现在明白了这个问题,并且有了一个解决办法,这已经得到了两个库的认可,但是我觉得很难实现。我想知道是否有相同的示例实现,是否有人已经这样做过呢?

任何帮助都是非常感谢的。在期待中感谢你们。

EN

回答 1

Stack Overflow用户

发布于 2022-10-07 08:08:38

我面对同样的问题,花了一些时间深入研究,以下是可能的解决方案。

将这些更改应用于app.server.module:

代码语言:javascript
复制
import * as crypto from 'crypto';
import { createWindow } from 'domino';
import * as fs from 'fs';

if (!global.window) {
  const template = fs.readFileSync('./src/index.html').toString();
  const win = createWindow(template);
  (global as any).window = win;
  (global as any).window.crypto = crypto;
  (global as any).window.isMobileOnServer = true;
  (global as any).document = win.document;
  (global as any).navigator = win.navigator;
  (global as any).location = win.location;
}

还添加了提供程序

代码语言:javascript
复制
{provide: AuthService, useValue: {}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72012878

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档