u
This commit is contained in:
		
							parent
							
								
									df2db84fa8
								
							
						
					
					
						commit
						a5e6d8112c
					
				
							
								
								
									
										20
									
								
								webtoken.js
									
									
									
									
									
								
							
							
						
						
									
										20
									
								
								webtoken.js
									
									
									
									
									
								
							@ -2,13 +2,16 @@ const JsonWebToken = require('jsonwebtoken')
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
const crypto = require('crypto')
 | 
					const crypto = require('crypto')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const my = {}
 | 
					const my = { envar: typeof wo !== 'undefined' ? wo.envar : globalThis.envar || {} }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
module.exports = {
 | 
					module.exports = {
 | 
				
			||||||
  init (envar) {
 | 
					  init (envar) {
 | 
				
			||||||
    my.tokenKey = envar.tokenKey
 | 
					    my.envar = envar
 | 
				
			||||||
  },    
 | 
					  },
 | 
				
			||||||
  createToken (content, key) {
 | 
					  createToken (content, key = my.envar.tokenKey) {
 | 
				
			||||||
 | 
					    if (!key) {
 | 
				
			||||||
 | 
					      console.warn('*** tokenkey is empty! ***')
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
    // content 可以是数字,非空字符串或非空对象,不可以是数组。
 | 
					    // content 可以是数字,非空字符串或非空对象,不可以是数组。
 | 
				
			||||||
    // key 可以未定义,则默认设为空字符串,再转化为哈希。(jsonwebtoken 要求 key 必须有值)
 | 
					    // key 可以未定义,则默认设为空字符串,再转化为哈希。(jsonwebtoken 要求 key 必须有值)
 | 
				
			||||||
    try {
 | 
					    try {
 | 
				
			||||||
@ -16,20 +19,23 @@ module.exports = {
 | 
				
			|||||||
        content,
 | 
					        content,
 | 
				
			||||||
        crypto
 | 
					        crypto
 | 
				
			||||||
          .createHash('sha256')
 | 
					          .createHash('sha256')
 | 
				
			||||||
          .update(key || my.tokenKey || wo.envar.tokenKey || '', 'utf8')
 | 
					          .update(key || '', 'utf8')
 | 
				
			||||||
          .digest('hex')
 | 
					          .digest('hex')
 | 
				
			||||||
      )
 | 
					      )
 | 
				
			||||||
    } catch (exp) {
 | 
					    } catch (exp) {
 | 
				
			||||||
      return null
 | 
					      return null
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  verifyToken (token, key) {
 | 
					  verifyToken (token, key = my.envar.tokenKey) {
 | 
				
			||||||
 | 
					    if (!key) {
 | 
				
			||||||
 | 
					      console.warn('*** tokenkey is empty! ***')
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
    try {
 | 
					    try {
 | 
				
			||||||
      return JsonWebToken.verify(
 | 
					      return JsonWebToken.verify(
 | 
				
			||||||
        token,
 | 
					        token,
 | 
				
			||||||
        crypto
 | 
					        crypto
 | 
				
			||||||
          .createHash('sha256')
 | 
					          .createHash('sha256')
 | 
				
			||||||
          .update(key || my.tokenKey || wo.envar.tokenKey || '', 'utf8')
 | 
					          .update(key || '', 'utf8')
 | 
				
			||||||
          .digest('hex')
 | 
					          .digest('hex')
 | 
				
			||||||
      )
 | 
					      )
 | 
				
			||||||
    } catch (exp) {
 | 
					    } catch (exp) {
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user