我正在构建一个需要身份验证的应用程序,我担心用户可能希望能够远程注销.有没有办法使用JSON Web令牌并能够将其列入黑名单或拒绝它们?我知道他们的好处是无国籍,但是远程注销会很好.
编辑:Express.js使用express-jwt模块,有一种撤销令牌的方法.此外,还有一个模块express-jwt-blacklist.我仍然不明白这些策略是如何运作的,并且想知道此时的最佳实践是什么.
我将 Apollo Client 与 React、graphql-tag与 Webpack 一起使用,以及graphql-config来维护客户端上的架构。
有一个文件 ./myclient/src/features/stats/graphql/getStart.graphql
query GetStart {
start @client
}
Run Code Online (Sandbox Code Playgroud)
在哪里start并且@client不使用 IDE graphql 插件进行验证,因为它们不包含在自动生成的模式中。
该./myclient/.graphqlconfig文件
{
"projects": {
"client": {
"schemaPath": "schema.graphql",
"extensions": {
"endpoints": {
"dev": "http://localhost:3000/graphql"
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
Webpack 被配置为在客户端加载 graphql 模式
{
test: /\.(graphql|gql)$/,
exclude: /node_modules/,
use: 'graphql-tag/loader',
},
Run Code Online (Sandbox Code Playgroud)
它将正确加载服务器架构。但是,如何将其配置为验证或忽视start @client,这是造成Unknown field "start" on object "Query"和Unknown directive "@client"错误?
我正在将一个对象传递给一个函数.我正在拉出对象的属性,这是一个易于阅读的子对象.但是,第二个对象不影响它在第一个对象上的类似属性.为什么是这样?
我希望在保存事件时更新函数作用域之外的processItem.event.为什么必须更新processItem而不仅仅是指向它的局部变量?
这有效:
this.submitForm = function(processItem) {
var event = processItem.event
if (event.new) {
EventDataService.create(event).then(function(response) {
processItem.event = response.data;
});
} else {
EventDataService.update(event).then(function(response) {
processitem.event = response.data
});
}
};
Run Code Online (Sandbox Code Playgroud)
而这不是
this.submitForm = function(processItem) {
var event = processItem.event
if (event.new) {
EventDataService.create(event).then(function(response) {
event = response.data;
});
} else {
EventDataService.update(event).then(function(response) {
event = response.data
});
}
};
Run Code Online (Sandbox Code Playgroud)