/ login-server / source / service / SessionKey.ts
SessionKey.ts
 1  import { ConfigManager } from '../config/ConfigManager'
 2  import _ from 'lodash'
 3  
 4  function createSessionId() : number {
 5      return _.random( -2147483648, 2147483647 )
 6  }
 7  
 8  function compareKeys( first: SessionKeyProperties, second: SessionKeyProperties ): boolean {
 9      return first.loginOk1 === second.loginOk1 && first.loginOk2 === second.loginOk2
10  }
11  
12  export interface SessionKeyProperties {
13      playOk1: number
14      playOk2: number
15      loginOk1: number
16      loginOk2: number
17  }
18  
19  export const SessionKeyHelper = {
20      createKey(): SessionKeyProperties {
21          return {
22              playOk1: createSessionId(),
23              playOk2: createSessionId(),
24              loginOk1: createSessionId(),
25              loginOk2: createSessionId(),
26          }
27      },
28  
29      compareKeys,
30  
31      comparePlayKeys( first: SessionKeyProperties, second: SessionKeyProperties ): boolean {
32          return compareKeys( first, second ) && first.playOk1 === second.playOk1 && first.playOk2 === second.playOk2
33      },
34  
35      createSessionId,
36  
37      isSame( first: SessionKeyProperties, second: SessionKeyProperties ): boolean {
38          if ( ConfigManager.server.showLicense() ) {
39              return this.comparePlayKeys( first, second )
40          }
41  
42          return ( first.playOk1 === second.playOk1 ) && ( first.playOk2 === second.playOk2 )
43      },
44  }