91 lines
2.6 KiB
HTML
91 lines
2.6 KiB
HTML
|
<!doctype html>
|
||
|
<html>
|
||
|
<head>
|
||
|
<title>Socket.IO chat</title>
|
||
|
<style>
|
||
|
* { margin: 0; padding: 0; box-sizing: border-box; }
|
||
|
body { font: 13px Helvetica, Arial; }
|
||
|
form { background: #000; padding: 3px; position: fixed; bottom: 0; width: 100%; }
|
||
|
form input { border: 0; padding: 10px; width: 90%; margin-right: .5%; }
|
||
|
form button { width: 9%; background: rgb(130, 224, 255); border: none; padding: 10px; }
|
||
|
#messages { list-style-type: none; margin: 0; padding: 0; }
|
||
|
#messages li { padding: 5px 10px; }
|
||
|
#messages li:nth-child(odd) { background: #eee; }
|
||
|
#login { width: 100%; padding: 10px }
|
||
|
#login button { width: 10%; padding: 8px; border: none; background: rgb(130, 255, 130);}
|
||
|
</style>
|
||
|
<!-- Auth0 lock script -->
|
||
|
<script src="//cdn.auth0.com/js/lock-7.12.min.js"></script>
|
||
|
|
||
|
<!-- Setting the right viewport -->
|
||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
|
||
|
<script src="auth0-variables.js"></script>
|
||
|
</head>
|
||
|
<body>
|
||
|
<div id="login">
|
||
|
<button>Login</button>
|
||
|
</div>
|
||
|
<div id="chat">
|
||
|
<ul id="messages"></ul>
|
||
|
<form action="">
|
||
|
<input id="m" autocomplete="off" /><button>Send</button>
|
||
|
</form>
|
||
|
</div>
|
||
|
<script src="/socket.io/socket.io.js"></script>
|
||
|
<script src="http://code.jquery.com/jquery-1.11.1.js"></script>
|
||
|
<script>
|
||
|
$('#chat').hide();
|
||
|
var userProfile;
|
||
|
var userToken;
|
||
|
$('#login button').click(function(e){
|
||
|
e.preventDefault();
|
||
|
lock.show(function(err, profile, token) {
|
||
|
if (err) {
|
||
|
//Error callback
|
||
|
alert('There was an error');
|
||
|
alert(err);
|
||
|
} else {
|
||
|
//Success callback
|
||
|
userToken = token;
|
||
|
|
||
|
//Save the JWT token
|
||
|
localStorage.setItem('userToken', token);
|
||
|
|
||
|
//Save the profile
|
||
|
userProfile = profile;
|
||
|
|
||
|
openChat();
|
||
|
}
|
||
|
})
|
||
|
});
|
||
|
|
||
|
function openChat(){
|
||
|
var socket = io();
|
||
|
socket.on('connect', function () {
|
||
|
socket.on('authenticated', function () {
|
||
|
//Do
|
||
|
$('#login').hide();
|
||
|
$('#chat').show();
|
||
|
$('form').submit(function(event){
|
||
|
socket.emit('chat message', $('#m').val());
|
||
|
$('#m').val('');
|
||
|
return false;
|
||
|
});
|
||
|
socket.on('chat message', function(msg){
|
||
|
console.log("msg");
|
||
|
$('#messages').append($('<li>').text(msg));
|
||
|
});
|
||
|
})
|
||
|
.emit('authenticate', {token: userToken}); // send the jwt
|
||
|
})
|
||
|
};
|
||
|
|
||
|
var lock = null;
|
||
|
$(document).ready(function() {
|
||
|
//These are set in auth0-variables.js
|
||
|
lock = new Auth0Lock(auth0Variables.AUTH0_CLIENT_ID, auth0Variables.AUTH0_DOMAIN);
|
||
|
});
|
||
|
</script>
|
||
|
</body>
|
||
|
</html>
|