最近在学习 Rails,做 oAuth2 登录的时候想不通一个问题。
需求:
User 表示用户,Identity 表示一个第三方认证(Facebook、GitHub 或 Twitter),User has many Identity。
现在希望做到的流程是(问题出在第 5 步)
- 用户用 Facebook 登录(得到一个 Identity 记录),系统生成一个空的 user 记录,提示需要先设置这个 user 的 email 和 password
- 于是用户设置了自己的 email 和 password,系统更新 user。
- 用户登出
- 同一个用户,用 GitHub 登录(有得到一个 Identity 记录)
- 系统这是仍然会生成一个空的 user 记录,并提示「需要先设置 user 的 email 和 password」。这样做是有问题的,因为一个用户,对应两个 user 了,难道我以后还要想办法合并这两个 user 吗?
我觉得我这样做有问题,但是又不知道怎么解决。
请指教。