我在SPA学习基于令牌的身份验证,我有一个问题.想象一下,我的应用程序中的身份验证过程是通过以下方式完成的:每当用户提供正确的凭据时,我都会给他一个令牌,并将redux store中的"authenticated"键更改为true,这样他就可以在我的应用中看到私人内容.我要隐藏的组件编码如下:
if(this.props.authenticated) {
return <SuperSecretComponentOfIlluminatiMasonic666Chemtrails />
} else {
return <PublicComponent />
}
Run Code Online (Sandbox Code Playgroud)
我想知道这是否是一种安全的方法,因为任何人都可以安装react-dev-tools,在浏览器中翻转"已验证"密钥,并在不提供凭据的情况下查看我想要隐藏的内容.我的组件应该以不同的方式编码,还是一切都很好,我只是弄错了?我在很多教程中都看过这种方法,但这个问题不让我晚上睡觉
我有一个这样的对象
const MY_OBJECT = {
'key': 'key val',
'anotherKey': 'anotherKey val',
};
Run Code Online (Sandbox Code Playgroud)
有没有办法从这个对象'key' | 'anotherKey'类型中提取?
我正在开发一个使用 Redis 作为数据库的 NodeJS 服务器,我需要检索具有特定 service_id 值的所有 Redis 键。例如,如果服务 id 为 4,我需要检索 service_id = 4 的所有键。我在 Redis 中得到以下结构,其中值是 JSON:
key: "{service_id: number}"
是否可以过滤具有特定服务 ID 的密钥?也许有一些解决方法可以使其成为可能?
当我输入npm run debug控制台时,我得到:"Debugger listening on ws://127.0.0.1:3090/d17dfe56-4fa4-4686-a62e-d07cff78c834".当我在chrome中找到这个地址时,我唯一看到的就是"WebSockets request was expected".我应该调整配置的哪些部分以使调试器工作?我正在使用最新版本的nodejs.
package.json脚本
"scripts": {
"prod": "webpack -p --env.production --progress",
"start": "babel-node --presets es2015 server/server.js",
"watch": "nodemon --exec npm run start",
"debug": "babel-node --presets es2015 server/server.js --inspect --debug-brk=3090"
}
Run Code Online (Sandbox Code Playgroud)
launch.json:
{
"version": "0.2.0",
"configurations": [
{
"name": "Launch via NPM",
"type": "node",
"request": "launch",
"runtimeExecutable": "npm",
"program": "${workspaceRoot}/server/server.js",
"restart": true,
"runtimeArgs": [
"run-script", "debug"
],
"port": 3090
},
{
"type": "chrome",
"request": "launch",
"name": "Launch Chrome against …Run Code Online (Sandbox Code Playgroud) node.js package.json visual-studio-code babel-node babel-cli
我正在尝试创建一个用于登录的模式,该模式在您单击登录按钮时淡入并在您关闭它时淡出。我决定使用“react-transition-group”库来实现它。淡入效果很好,但它会立即淡出,而没有应用动画。我怎样才能让它工作?
连接组件:
<div>
<ModalRoot {...this.props}>
<Grid>
<Menu {...this.props}/>
<div className='wrapper'>
<div className='content'>
<Form postTodo={this.props.postTodo}/>
<ul className='todo-list'>
<CSSTransitionGroup
transitionName='todo'
transitionEnterTimeout={500}
transitionLeaveTimeout={300}>
{todoItems}
</CSSTransitionGroup>
</ul>
</div>
</div>
</Grid>
</ModalRoot>
</div>
Run Code Online (Sandbox Code Playgroud)
模态根:
const MODAL_COMPONENTS = {
LOGIN_MODAL: LoginModal,
/* other modals */
};
const ModalRoot = (props: any) => {
const {isVisible, isMaskShown, window} = props.modal;
const Modal = MODAL_COMPONENTS[window];
if(!isVisible) {
return (
<div>
{props.children}
</div>
);
}
if(isMaskShown) {
return (
<CSSTransitionGroup
transitionName='mask'
transitionAppear={true}
transitionAppearTimeout={500}
transitionEnterTimeout={0}
transitionLeaveTimeout={300}>
<Mask>
<Modal key={100} hideModal={props.hideModal} …Run Code Online (Sandbox Code Playgroud) reactjs reactcsstransitiongroup redux react-redux react-transition-group
node.js ×3
reactjs ×2
redux ×2
babel-cli ×1
babel-node ×1
database ×1
javascript ×1
jwt ×1
node-redis ×1
package.json ×1
react-redux ×1
redis ×1
typescript ×1