目前,在var path ="path of final pdf to save";
var imagePath="path of image that should be paste in final pdf file";
iTextSharp.text.Document document = new iTextSharp.text.Document();
PdfWriter writer = PdfWriter.GetInstance(document, new FileStream(path, FileMode.Create));
iTextSharp.text.Image myImage = iTextSharp.text.Image.GetInstance(imagePath);
myImage.ScaleAbsoluteHeight(document.PageSize.Height);
myImage.ScaleAbsoluteWidth(document.PageSize.Width);
myImage.Alignment = Element.ALIGN_CENTER;
document.Add(myImage);
document.Close();
登录后,我使用user
返回token
。随后,他们必须向JSON
页面发出请求,并通过index
中的token
。
HTTP Authorisation header
页面包含以下内容:
index.html
如果var socket = io.connect('http://' + document.domain + ':' + location.port + namespace);
socket.on('connect', function() {
socket.emit('join', {room: 'venue_1'});
});
遵循此事件处理,则只有在user
之后才能与socket
建立联系。但是,我正在尝试防止有人可能只创建包含上述代码的login
文件,而不是首先完成html
步骤。
服务器代码
login
我是否可以将@socketio.on('connect', namespace='/test')
def test_connect():
# Can anything be done here to verify a user?
emit('my response', {'data': 'Connected'})
传递给上述token
事件,以便我可以在那里验证用户。如果connect
最终无效,我可以进行token
来电。
或者,当我进行以下调用时,是否需要进行此操作?
disconnect
感谢您的帮助。
答案 0 :(得分:4)
Flask-SocketIO的文档包含Authentication的一节。
解决方案基于SocketIO处理程序中HTTP上下文(用户会话和cookie)的可用性。如果您使用Flask-Login来管理用户会话,则套接字处理程序中可以使用current_user
上下文变量。例如:
@socketio.on('connect', namespace='/test')
def test_connect():
if not current_user.is_authenticated()
return # do not respond or disconnect
# user is authenticated
emit('my response', {'data': 'Connected'})