我正在使用JWT令牌来授权我的API,在实现过程中我发现令牌中的头和有效负载始终以eyJ.这表明了什么?
我正在练习基本的单元测试用例,mocha并且有点困惑如何使用WHO和WHEN来使用done()处理程序。
done()?以下是我无法使用的示例代码done:
it('Testing insertDocumentWithIndex', async (done) => {
try{
var data = await db.insertDocumentWithIndex('inspections', {
"inspectorId" : 1,
"curStatus" : 1,
"lastUpdatedTS" : 1535222623216,
"entryTS" : 1535222623216,
"venueTypeId" : 1,
"location" : [
45.5891279,
-45.0446183
]
})
expect(data.result.n).to.equal(1);
expect(data.result.ok).to.equal(1);
}
catch(e){
logger.error(e);
done(e);
}
})
Run Code Online (Sandbox Code Playgroud)
当我运行时,它失败并引发错误-
错误:超时超过2000毫秒。对于异步测试和挂钩,请确保调用了“ done()”;如果返回承诺,请确保其解决。
但是done应该仅在失败的情况下被调用(原谅我,如果我说的是不正确的话,我是初学者),这是我做的catch阻塞,并且是返回到Promise的第二点,效果很好。见下面的代码
it('Testing insertDocumentWithIndex', async () => {
return new Promise(async (resolve, reject) => …Run Code Online (Sandbox Code Playgroud) 我正在创建一个动态过滤器对象,用于从 nodejs 中的 mongodb 查询数据。但是 mongo 抛出错误“无法解析过滤器对象,过滤器必须是 BSON 类型的对象”。这是我的参考函数代码和日志屏幕截图。
function GetDeviceByFilter(args, cb) {
var query = args.qs;
var andQry = [];
var orQry = [];
var type = parseInt(query.type);
try {
if(type === uType.s){
andQry.push({sel: parseInt(query.idx)});
if(query.isSold === "0"){
orQry.push({uid: {$exists: false}})
orQry.push({uid: 0});
orQry.push({uid: null});
} else if(query.isSold === "1"){
orQry.push({uid : {$gt: 0}});
}
} else if(type === uType.a){
andQry.push({admn: parseInt(query.idx)});
if(query.isSold === "0"){
orQry.push({sel: {$exists: false}})
orQry.push({sel: 0});
orQry.push({sel: null});
} else if(query.isSold === "1"){ …Run Code Online (Sandbox Code Playgroud) 我正在 Spring Security 中实现 JWT 身份验证。我有预定义的角色,例如。普通用户、管理员等
我有以下令牌有效载荷:
{
"sub": "nick",
"iat": "<some_date>",
"exp": "<some_date+1h>",
"scopes": [
"ROLE_USER",
"ROLE_ADMIN"
]
}
Run Code Online (Sandbox Code Playgroud)
到目前为止,我看到的大多数实现都是根据 id/username/email 从数据库中检索用户详细信息,然后使用这些数据来创建身份验证(例如,通过对 UsernamePasswordAuthenticationToken 进行身份验证)。对我来说,这实际上是一种更可取的方式,因为我总是拥有最新的特权和限制(例如,用户是否被禁止),并且与收益相比,时间开销并没有那么大。
我只是好奇如何仅根据传入请求中包含的角色(在其授权标头令牌中)使用 Spring Security 实现授权。我只想在请求被适当路由后访问控制器中的用户标识符。仅基于检查到期时间和角色有效性的令牌验证是否就足够了?
在 loginUser 函数中,我想访问 'stsTokenManager' 中的 accessToken 的值,但是当我尝试访问该值时,我得到了 'undefind' 值。
import React, { Component } from 'react';
import {
StyleSheet,
Text,
View,
Image,
Button,
TouchableWithoutFeedback, StatusBar, TextInput,
SafeAreaView, Keyboard, TouchableOpacity,
KeyboardAvoidingView
} from 'react-native';
import { CheckBox, Item, Label, Input } from 'native-base';
import * as firebase from 'firebase';
const firebaseconfig={
apiKey: " ",
authDomain: " ",
databaseURL: " ",
projectId: " ",
storageBucket: " ",
messagingSenderId: ""
};
firebase.initializeApp(firebaseconfig);
export default class Login extends Component{
// static navigationOptions = { …Run Code Online (Sandbox Code Playgroud) javascript json firebase react-native firebase-authentication
json ×2
jwt ×2
node.js ×2
arrays ×1
async-await ×1
firebase ×1
javascript ×1
mocha.js ×1
mongodb ×1
react-native ×1
spring ×1