require user login framework