i actually just got done writing a very over engineered vr door for my horror scenes. it was built for roomscale with locomotion. you wouldnt need to make it to complicated for what you want.
i really just used a physical constraint and i controlled it in blueprints.
on spawn i saved the initial transform and set the start transform afterwards(if i wanted to start it open).
on tick i would detect for the current swing on the constraint and compare it to the spawn transform to auto shut the door and play a sound when it was close to the latch.
and then i had alot of states like closed, gripped, autocloseEnabled, that i had to shuffle around when i gripped it or the door shut.
i have also done this. if you want a floppy door that returns to a closed position you can set a motor on the constraint and it will always try to go back to that spot.
and if you mean the kind of door like you see at hospitals and schools with the paddle button then you want to have a button like component for the paddle and when you press it in it unlocks the door. also i found that you want to add a small impulse to help it since doors kinda push out slightly when they unlatch. to lock the doors i just stopped simulating physics, and start again when the paddle is pressed.
and depending on how your character is made you may need to do things like stop simulating physics when the door should be shut or you might be able to force walk through anyways
if you need more help just send me a message.