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