Ruby 如何获取登录用户';通过omniauth谷歌应用程序的名字?

Ruby 如何获取登录用户';通过omniauth谷歌应用程序的名字?,ruby,return,omniauth,Ruby,Return,Omniauth,目前,我使用Ruby进行了大量工作,并出于安全目的使用Google app Omniauth实现。我想有一个残留的功能,显示用户谁是目前登录到该网站位。我唯一不知道的是如何返回并显示当前登录的用户名 我不使用这种技术: 我的登录检查技术是一个简单的语句: Rails.env.development? ? authorize({email: 'test@gmail.com', name: 'dev'}) : unless logged_in? redirect_to '

目前,我使用Ruby进行了大量工作,并出于安全目的使用Google app Omniauth实现。我想有一个残留的功能,显示用户谁是目前登录到该网站位。我唯一不知道的是如何返回并显示当前登录的用户名

我不使用这种技术:

我的登录检查技术是一个简单的语句:

Rails.env.development? ?
    authorize({email: 'test@gmail.com', name: 'dev'}) :
    unless logged_in?
      redirect_to '/auth/admin'
    end
另外,使用“除非”声明作为修饰符会在运行时返回语法错误,这就是为什么我使用它的方式


非常感谢您的帮助

当您定义路由时,您会将Google Apps回调指向特定的控制器操作,例如:

post '/auth/google_apps/callback', to: 'sessions#create'
在本例中,作为OAuth进程的最后一部分,将调用
sessioncontroller#create

在该操作中,您将能够查询OmniAuth在
env[OmniAuth.auth]
中填充的请求参数。在这个散列中,您可以找到用户的名字和姓氏:

email      = env['omniauth.auth']['info']['email']
first_name = env['omniauth.auth']['info']['first_name']
last_name  = env['omniauth.auth']['info']['last_name']
关于这个话题,我推荐一个非常有用的Railscast