1

根据这个问题,我正在使用 CodeIgniter 和 OAuth 2 来尝试为我的 webapp 的内部用户提供 SSO,最好是根据他们的 Google Apps 帐户验证他们。没有注册或任何东西,只有现有用户。

使用 CI oauth2 spark我从谷歌得到一个类似于下面的 OAuth 令牌:

OAuth2_Token_Access Object
 (
   [access_token:protected] => dp83.AHSDj899sDHHD908DHFBDjidkd8989dDHhjjd
   [expires:protected] => 1349816820
   [refresh_token:protected] => 
   [uid:protected] => 
 )

使用该令牌,我可以从 Google 检索一些用户信息:

[uid] => 3849450385394595
[nickname] => this_guy
[name] => This Guy
[first_name] => This
[last_name] => Guy
[email] => this.guy@example.com
[location] => 
[image] => 
[description] => 
[urls] => Array
    (
    )

现在要让当前将使用 webapp 的 15 个人左右登录,我是否需要users在 mysql 数据库中创建一个表,并以他们的电子邮件地址作为键?然后比较刚刚从 Google OAuth 请求返回的电子邮件,看看它是否存在于我的users表中?

Google access_token 怎么样,我现在是否将它与用户表中已经存在的电子邮件一起存储?

相关:将来我将如何根据该 access_token 自动验证用户,这样他们就不必再次通过 Google 完成整个 OAuth 审批流程?

4

1 回答 1

0

访问令牌更改 - 所以不,将其存储在您的数据库中是没有意义的。一旦过期(用户注销),它就没有用了。要管理访问,您可以存储从初始身份验证返回的任何唯一 ID。如果您想知道如何在第一次身份验证后避免 OAuth,我认为这是不可能的,因为这会破坏其目的。

于 2013-01-12T14:12:55.243 回答