我在使用redux和路由器进行身份验证方面遇到了一些麻烦,我希望能够对如何最好地解决我的问题做一些澄清.
我有一个登录组件,在提交时调度以下操作:
export const loginUser = (creds) => {
return dispatch => {
dispatch(requestLogin(creds))
return fetch('http://127.0.0.1:4000/api/login', {
...
})
.then(res => {
dispatch(receiveLogin())
browserHistory.push('/admin')
...
})
...
}
}
Run Code Online (Sandbox Code Playgroud)
receiveLogin操作将状态中的isAuthenticated标志更新为true.我的受保护路由具有以下onEnter挂钩:
export default (state) => {
return {
path: '/',
component: App,
childRoutes: [
{
path: 'protected',
component: Protected,
...
onEnter(nextState, replaceState) {
const loggedIn = //check state.isAuthenticated
if (!loggedIn) {
replaceState(null, 'login')
}
}
}
]
}
}
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,我将国家作为一个论点.这使我可以从服务器以及客户端访问初始状态.但是,在我的登录操作发生后,显然onEnter挂钩仍将使用初始状态.
我想知道的是更新isAuthenticated标志后获取当前状态的最佳方法,并在我的onEnter挂钩中使用它.或者,我的方法是完全有缺陷的,我应该完全采用不同的方式吗?
我正在使用STL加载器将stl文件加载到three.js场景中.这些stl文件的范围从5mb到50mb.
是否有一种方法可以用来逐步加载/流式传输/增加细节级别(不确定正确的术语),因为模型加载,以便我的用户在出现任何内容之前几分钟都没有盯着空白屏幕?
如果模型是20,000个三角形,那么three.js是否有一个方法可能首先只加载2,000个然后再进入完全详细的模型?
我已经阅读了我可以找到的所有其他主题,但没有一个解决方案有效.我使用React + Redux + Express并尝试按照以下方式将JWT存储在cookie中:
https://auth0.com/blog/2015/09/28/5-steps-to-add-modern-authentication-to-legacy-apps-using-jwts/
在我的Redux操作中,我发送以下请求:
export function getCookie(token) {
const config = {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer ' + token
},
body: JSON.stringify({ token })
};
return fetch('http://127.0.0.1:4000/authorize-cookie', config)
.then((res) => {
return res.json();
})
.then((resJson) => {
return resJson;
})
.catch(err => console.log('Error: ', err));
}
Run Code Online (Sandbox Code Playgroud)
在服务器上,我正在回复...
app.post('/authorize-cookie', authenticate, (req, res) => {
res.cookie('id_token', req.body.token, {
maxAge: 360000
});
res.status(200).send({ message: 'Cookie set!' });
});
Run Code Online (Sandbox Code Playgroud)
... authenticate是一个验证令牌的函数.
我的响应标题似乎一切都很好:
HTTP/1.1 200 OK
Set-Cookie: id_token=xxx.xxx.xxx; …Run Code Online (Sandbox Code Playgroud) 有什么方法可以将软件物理与WebGL或threejs集成在一起?我可以以某种方式集成例如PhysX引擎吗?
我需要在3d软体内移动3d刚体并使软体变形以响应。理想地,该软体将具有与粘土相似的塑性。
我正在努力实现的目标是否可能?
任何建议或指示将不胜感激。