lemonldap-ng/lemonldap-ng-portal/site/coffee/oidcchecksession.coffee
2018-11-07 21:28:40 +01:00

34 lines
1.1 KiB
CoffeeScript

values = {}
$(document).ready ->
# Import application/init variables
$("script[type='application/init']").each ->
try
tmp = JSON.parse $(this).text()
for k of tmp
values[k] = tmp[k]
#console.log 'values=', values[k]
catch e
console.log 'Parsing error', e
# Initialize JS communication channel
window.addEventListener "message", (e) ->
message = e.data
console.log 'message=', message
client_id = decodeURIComponent message.split(' ')[0]
#console.log 'client_id=', client_id
session_state = decodeURIComponent message.split(' ')[1]
#console.log 'session_state=', session_state
salt = decodeURIComponent session_state.split('.')[1]
#console.log 'salt=', salt
# hash ??????
#ss = hash.toString(CryptoJS.enc.Base64) + '.' + salt
ss = btoa(client_id + ' ' + e.origin + ' ' + salt) + '.' + salt
#word = CryptoJS.enc.Utf8.parse(client_id + ' ' + e.origin + ' ' + salt)
#ss = CryptoJS.enc.Base64.stringify(word) + '.' + salt
if session_state == ss
stat = 'unchanged'
else
stat = 'changed'
e.source.postMessage stat, e.origin
, false