add external login feature
merge files
Merage master and external-login