module AuthenticationRails
class OmniauthCallbacksController < DeviseTokenAuth::OmniauthCallbacksController
protected
# break out provider attribute assignment for easy method extension
def assign_provider_attrs(user, auth_hash)
if auth_hash['provider'] == 'github'
user.assign_attributes({
nickname: auth_hash['info']['nickname'],
name: auth_hash['info']['name'],
image: auth_hash['info']['image'],
email: auth_hash['info']['email']
})
else
super
end
end
end
end
配置
install gem omniauth-github
到github Aauth Apps注册应用, 获取到
github_key
(Client ID),github_secret
(Client Secret)新建
config/initializers/omniauth.rb
routes
新建
app/controllers/concerns/authentiaction_rails/omniauth_callbacks_controller.rb
使用
前端点击GitHub授权登录执行
github授权成功后会返回到
${process.env.VUE_APP_ORIGIN}/login
路由, 并携带query
信息, 并保存到store.state.user.authInfo
登录页请求服务器用户信息,并携带验证token
至此,用户信息也已经获取到,用户登录完成