implementing social login (part 3) of the blog series