lemonldap-ng/lemonldap-ng-portal/site/coffee/oidcchecksession.coffee

34 lines
1.1 KiB
CoffeeScript
Raw Normal View History

2017-01-19 12:33:11 +01:00
values = {}
2017-10-10 17:23:41 +02:00
2017-01-19 12:33:11 +01:00
$(document).ready ->
2017-10-10 17:23:41 +02:00
# Import application/init variables
2017-01-19 12:33:11 +01:00
$("script[type='application/init']").each ->
try
2017-01-19 13:13:36 +01:00
tmp = JSON.parse $(this).text()
2017-01-19 12:33:11 +01:00
for k of tmp
values[k] = tmp[k]
#console.log 'values=', values[k]
2017-01-19 12:33:11 +01:00
catch e
console.log 'Parsing error', e
2017-10-10 17:23:41 +02:00
# Initialize JS communication channel
2018-07-27 21:43:23 +02:00
window.addEventListener "message", (e) ->
2018-07-28 07:28:30 +02:00
message = e.data
2018-10-27 21:23:58 +02:00
console.log 'message=', message
2018-07-28 07:28:30 +02:00
client_id = decodeURIComponent message.split(' ')[0]
#console.log 'client_id=', client_id
2018-07-28 07:28:30 +02:00
session_state = decodeURIComponent message.split(' ')[1]
#console.log 'session_state=', session_state
2018-07-28 07:28:30 +02:00
salt = decodeURIComponent session_state.split('.')[1]
#console.log 'salt=', salt
2018-10-28 21:58:59 +01:00
# hash ??????
#ss = hash.toString(CryptoJS.enc.Base64) + '.' + salt
2018-11-07 21:28:40 +01:00
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
2018-07-28 07:28:30 +02:00
if session_state == ss
stat = 'unchanged'
else
stat = 'changed'
e.source.postMessage stat, e.origin
, false