add login feature(incomplete)