小编Ric*_*ler的帖子

RS256 vs HS256:有什么区别?

我正在使用Auth0来处理我的网络应用程序中的身份验证.我正在使用ASP.NET Core v1.0.0和Angular 2 rc5,我对身份验证/安全性一般不太了解.

ASP.NET Core Web ApiAuth0文档中, JWT算法有两种选择:RS256和HS256.这可能是一个愚蠢的问题但是:

RS256和HS256有什么区别?有哪些用例(如果适用)?

jwt auth0 asp.net-core-webapi

216
推荐指数
4
解决办法
13万
查看次数

`useRef`和`createRef`有什么区别?

当我偶然发现时,我正在浏览钩子文档useRef.

看看他们的例子......

function TextInputWithFocusButton() {
  const inputEl = useRef(null);
  const onButtonClick = () => {
    // `current` points to the mounted text input element
    inputEl.current.focus();
  };
  return (
    <>
      <input ref={inputEl} type="text" />
      <button onClick={onButtonClick}>Focus the input</button>
    </>
  );
}
Run Code Online (Sandbox Code Playgroud)

......好像useRef可以换成createRef.

function TextInputWithFocusButton() {
  const inputRef = createRef(); // what's the diff?
  const onButtonClick = () => {
    // `current` points to the mounted text input element
    inputRef.current.focus();
  };
  return (
    <>
      <input ref={inputRef} …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs react-hooks

39
推荐指数
4
解决办法
1万
查看次数

如何在滚动时添加顶部和底部阴影,但仅在需要时添加?

如何在容器溢出时添加阴影但仅在需要时添加阴影?

我的意思是:

  • 如果有内容可以在顶部或底部滚动,则显示阴影以告知用户有更多内容要scoll
  • 如果没有要滚动的内容,则不会出现阴影

并进一步澄清

  • 如果容器的内容溢出(即滚动)并且用户位于内容的最顶部,那么页面底部应该有阴影而不是顶部.
  • 同样如果用户位于页面底部,则期望顶部应该有阴影
  • 如果内容不溢出容器,则没有影子应该显示,以保持干净的东西.

我有工作的JavaScript解决方案,但出于性能原因,我想要一些纯粹的CSS.

有任何想法吗?

css

20
推荐指数
3
解决办法
9105
查看次数

什么是CompletableFuture相当于flatMap?

我有这种奇怪的类型,CompletableFuture<CompletableFuture<byte[]>>但我想要CompletableFuture<byte[]>.这可能吗?

public Future<byte[]> convert(byte[] htmlBytes) {
    PhantomPdfMessage htmlMessage = new PhantomPdfMessage();
    htmlMessage.setId(UUID.randomUUID());
    htmlMessage.setTimestamp(new Date());
    htmlMessage.setEncodedContent(Base64.getEncoder().encodeToString(htmlBytes));

    CompletableFuture<CompletableFuture<byte[]>> thenApply = CompletableFuture.supplyAsync(this::getPhantom, threadPool).thenApply(
        worker -> worker.convert(htmlMessage).thenApply(
            pdfMessage -> Base64.getDecoder().decode(pdfMessage.getEncodedContent())
        )
    );

}
Run Code Online (Sandbox Code Playgroud)

java java-8 completable-future

16
推荐指数
1
解决办法
3662
查看次数

Fetch API:如何判断错误是否是网络错误

所以我有一些这样的代码:

async function getData() {
  const response = await fetch(/* ... */);
  const json = await response.json();
  return transform(json);
}
Run Code Online (Sandbox Code Playgroud)

哪里transform可以抛出一些它自己的错误。


我尝试从 API 中捕获网络错误fetch

try {
  const data = await getData();

  // ...
  return // ...
} catch (e) {
  if (isNetworkError(e)) {
    return localStorage.getItem('...');
  }

  throw e;
}
Run Code Online (Sandbox Code Playgroud)

我的问题是如何实现isNetworkError跨浏览器工作?注意:只有在网络离线时才应返回 true。

似乎 chrome 和 firefox 都会抛出 aTypeError但它们的消息各不相同。

  • 火狐浏览器:TypeError: "NetworkError when attempting to fetch resource."
  • 铬合金:TypeError: Failed to fetch

javascript fetch-api

15
推荐指数
2
解决办法
1万
查看次数

您可以使用React钩子早日返回吗?

React文档明确指出,有条件地调用钩子是行不通的从最初的React hooks演示文稿开始,原因是因为React使用您调用hook的顺序来注入正确的值。

我理解这一点,但是现在我的问题是,从带有钩子的函数组件中尽早返回是否可以?

所以允许这样的事情:

import React from 'react';
import { useRouter, Redirect } from 'react-router';
import { useSelector } from 'react-redux';

export default function Component() {
  const { match } = useRouter({ path: '/:some/:thing' });
  if (!match) return <Redirect to="/" />;

  const { some, thing } = match.params;
  const state = useSelector(stateSelector(some, thing));


  return <Blah {...state} />;
}
Run Code Online (Sandbox Code Playgroud)

从技术上讲,该useSelector挂钩是有条件地调用的,但是在渲染之间它们的调用顺序不会改变(即使有可能会调用更少的挂钩)。

如果不允许这样做,您能否解释为什么不允许这样做,并提供通用的替代方法来尽早返回带有挂钩的函数组件?

javascript reactjs react-hooks

14
推荐指数
1
解决办法
1759
查看次数

为什么我的令牌被拒绝了?什么是资源ID?"无效令牌不包含资源ID(oauth2-resource)"

我正在尝试为spring项目配置OAuth2.我正在使用我的工作场所提供的共享UAA(来自云代工厂的oauth实现)实例(因此我不打算创建授权服务器,并且授权服务器与资源服务器分开).前端是单页面应用程序,它使用隐式授权直接从授权服务器获取令牌.我有SPA设置,它Authorization: Bearer <TOKEN>在每个Web API调用微服务时添加标题.

我现在的问题是微服务.

我正在尝试使用此共享授权服务器来验证微服务.我可能在这里有一个误解,购买我目前的理解是这些微服务扮演资源服务器的角色,因为它们托管SPA用来获取数据的端点.

所以我尝试配置像这样的微服务:

@Configuration
@EnableResourceServer
public class OAuth2ResourceServerConfig extends ResourceServerConfigurerAdapter {

    @Override
    public void configure(HttpSecurity http) throws Exception {
        http.csrf().disable()
        .authorizeRequests()
        .antMatchers("/api/**").authenticated();
    }

    @Bean
    public TokenStore tokenStore() {
        return new JwtTokenStore(accessTokenConverter());
    }

    @Bean
    public JwtAccessTokenConverter accessTokenConverter() {
        JwtAccessTokenConverter converter = new JwtAccessTokenConverter();
        converter.setVerifierKey("-----BEGIN PUBLIC KEY-----<key omitted>-----END PUBLIC KEY-----");
        return converter;
    }

    @Bean
    @Primary
    public DefaultTokenServices tokenServices() {
        DefaultTokenServices defaultTokenServices = new DefaultTokenServices();
        defaultTokenServices.setTokenStore(tokenStore());
        return defaultTokenServices;
    }


    @Override
    public void configure(ResourceServerSecurityConfigurer resources) throws …
Run Code Online (Sandbox Code Playgroud)

java spring oauth-2.0 jwt spring-security-oauth2

12
推荐指数
2
解决办法
1万
查看次数

如何像Angact一样在Angular 2+中传递道具?

在反应中我可以任意传递道具,如下:

function SomeComponent(props) {
  const {takeOutProp, ...restOfProps} = props;
  return <div {...restOfProps}/>;
}
Run Code Online (Sandbox Code Playgroud)

我如何在Angular中做同样的事情?

-

更具体地说,我想编写一个自定义下拉组件并将props传递给选择框.

javascript typescript reactjs angular

11
推荐指数
1
解决办法
5998
查看次数

将从回调中递归调用函数会导致堆栈溢出吗?

我想在事件被触发后调用一个函数然后在同一个回调中再次调用该函数.这是在函数完成时创建一种事件侦听器.

当你看到代码时,你会知道我想要做什么:

"use strict";
var page = require('webpage').create();
var system = require('system');

function onStdReadLine(callback) {
    system.stdin.readLineAsync(function(err, line) {
        callback(line);
        onStdReadLine(callback);
    });
}

onStdReadLine(function(line) {
    // do something when the line comes in
    system.stdout.writeLine(line);
}); 
Run Code Online (Sandbox Code Playgroud)

题:

这可能导致堆栈溢出吗?有没有办法重构这段代码不是递归的?

谢谢!

javascript stack-overflow

7
推荐指数
1
解决办法
1009
查看次数

我如何在comments/JSDoc中引用另一个打字稿类型?

我对Javadoc很熟悉.在Javadoc中,您可以放置​​一个引用Javadoc的链接放在另一个类型上,如下所示:

/**
 * some java thingy. see this other java thingy too {@link OtherThingy}
 */
public class Thingy { /*...*/ }

/**
 * some other java thingy. see the first java thingy too {@link Thingy}
 */
public class OtherThingy{ /*...*/ }
Run Code Online (Sandbox Code Playgroud)

我可以在打字稿的JSDoc风格中做同样的事情吗?我知道我可以在评论中使用markdown,我可以放置网页链接,但这不是我想要的.

此外,任何对JSDoc/typescript文档工具的引用都会非常有用:)

编辑:根据下面的答案,这是JSDoc的一个功能,但似乎没有包含在VSCode中.VSCode中是否有有效的语法?

jsdoc typescript visual-studio-code

6
推荐指数
3
解决办法
2395
查看次数