init
This commit is contained in:
		
						commit
						a9523058c4
					
				
							
								
								
									
										2
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,2 @@
 | 
				
			|||||||
 | 
					node_modules
 | 
				
			||||||
 | 
					.DS_Store
 | 
				
			||||||
							
								
								
									
										33
									
								
								index.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								index.js
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,33 @@
 | 
				
			|||||||
 | 
					const JsonWebToken = require('jsonwebtoken')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const crypto = require('crypto')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					module.exports={
 | 
				
			||||||
 | 
					  createToken: function(content, key) { // content 可以是数字,字符串或对象,不可以是数组。
 | 
				
			||||||
 | 
					    key=key||(wo&&wo.Config&&wo.Config.tokenKey?wo.Config.tokenKey:'') // key或wo.Config.tokenKey其中之一必须存在
 | 
				
			||||||
 | 
					    if (content && !Array.isArray(content) && typeof(key)==='string' && key.length>0){ // 注意,jwt.sign(null|'') 会出错。但 sign(0)可以的。
 | 
				
			||||||
 | 
					      try{
 | 
				
			||||||
 | 
					        return JsonWebToken.sign(content, crypto.createHash('sha256').update(key, 'utf8').digest('hex'))
 | 
				
			||||||
 | 
					      }catch(exp){
 | 
				
			||||||
 | 
					        return null
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    return null
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  ,
 | 
				
			||||||
 | 
					  verifyToken: function(token, key) {
 | 
				
			||||||
 | 
					    key=key||(wo&&wo.Config&&wo.Config.tokenKey?wo.Config.tokenKey:'') // key或wo.Config.tokenKey其中之一必须存在
 | 
				
			||||||
 | 
					    if (token && typeof token==='string' && typeof(key)==='string' && key.length>0) {
 | 
				
			||||||
 | 
					      try{
 | 
				
			||||||
 | 
					        token=JsonWebToken.verify(token, crypto.createHash('sha256').update(key, 'utf8').digest('hex'))
 | 
				
			||||||
 | 
					      }catch(exp){
 | 
				
			||||||
 | 
					        return null
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      if (Date.now() - Date.parse(token.whenStamp) > 2*60*60*1000) { // 每过2小时,核对一遍密码
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      return token
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    return null
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										13
									
								
								package.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								package.json
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,13 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					  "name": "so.base",
 | 
				
			||||||
 | 
					  "version": "0.1.0",
 | 
				
			||||||
 | 
					  "private": true,
 | 
				
			||||||
 | 
					  "dependencies": {
 | 
				
			||||||
 | 
					    "jsonwebtoken": "^7.2.1"
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  "devDependencies": {},
 | 
				
			||||||
 | 
					  "scripts": {
 | 
				
			||||||
 | 
					    "setup": "npm install"
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  "author": ""
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Loading…
	
		Reference in New Issue
	
	Block a user