小编ale*_*zak的帖子

在 nextJS 中为 cookie 创建 HOC(高阶组件)

所以我在 Next.js 应用程序中创建身份验证逻辑。我创建了/api/auth/login处理请求的页面,如果用户的数据良好,我将httpOnly使用 JWT 令牌创建一个cookie 并将一些数据返回到前端。这部分工作正常,但我需要某种方法来保护某些页面,以便只有登录的用户才能访问它们,而我在为此创建 HOC 时遇到了问题。

我看到的最好的方法是使用,getInitialProps但在 Next.js 网站上它说我不应该再使用它,所以我想使用getServerSideProps但那也不起作用,或者我可能做错了什么。

这是我的 HOC 代码:(cookie 存储在“userToken”名称下)

import React from 'react';
const jwt = require('jsonwebtoken');

const RequireAuthentication = (WrappedComponent) => {

  return WrappedComponent;
};


export async function getServerSideProps({req,res}) {
  const token = req.cookies.userToken || null;

// no token so i take user  to login page
  if (!token) {
      res.statusCode = 302;
      res.setHeader('Location', '/admin/login')
      return {props: {}}
  } else {
    // we have token so …
Run Code Online (Sandbox Code Playgroud)

cookies node.js server-side-rendering higher-order-components next.js

5
推荐指数
1
解决办法
3704
查看次数

颤动测试中的非空变量

我大约一年前正在学习颤振,现在我休息后回来,但我遇到了一个问题,它可能很简单,但我不太理解它。

我正在关注 Flutter Clean Architecture 的教程,当我编写第一个测试时,我收到一条错误消息:“必须先分配不可为空的局部变量‘mockNumberTriviaRepository’,然后才能使用它。” 我不知道如何将其编写为正确的代码。

我的代码如下:

class MockNumberTriviaRepository extends Mock
    implements NumberTriviaRepository {}

void main() {
  GetConcreteNumberTrivia usecase;
  MockNumberTriviaRepository mockNumberTriviaRepository;

  setUp(() {
    MockNumberTriviaRepository mockNumberTriviaRepository = MockNumberTriviaRepository();
    usecase = GetConcreteNumberTrivia(mockNumberTriviaRepository);
  });

  final tNumber = 1;
  final tNumberTrivia = NumberTrivia(number: 1, text: 'test');
  test('schould get trivia for the number from the repository', () async {
    // arrange
    when(**mockNumberTriviaRepository**.getConcreteNumberTrivia(1)).thenAnswer((_) async => Right(tNumberTrivia));
    // act

    // assert
  });
}


Run Code Online (Sandbox Code Playgroud)

错误出现在测试函数中when方法之后** ** this 标志之间的部分

dart flutter flutter-test dart-null-safety

5
推荐指数
1
解决办法
1082
查看次数