我只使用omniauth允许使用facebook / google / twitter登录我的网站.
我存储名字,姓氏和电子邮件.但是,当我从oauth提出twitter auth哈希时,我只会在auth哈希中获得昵称,名称,位置,图像,描述和网址.
解决方法
Twitter不会发送用户电子邮件,因此您将无法从Twitter API获取该信息.相反,您必须要求用户在您的注册表单上输入他们的电子邮件地址.
至于拆分名称,一旦你使用类似的东西返回哈希,你就会这样做:
social_params ||= request.env["omniauth.auth"] fullname = social_params["user_info"]["name"].split(' ') first_name,last_name = fullname[0],fullname[1] puts "first name is #{first_name} and last name is #{last_name}"
请记住,如果last_name名称中没有空格或者没有给出姓氏,则last_name可能为nil.这也没有考虑到许多人在其他文化中有多个姓氏的事实.