用户和访问令牌的CodeIgniter OAuth 2.0数据库设置

时间:2012-10-09 21:35:45

标签: mysql codeigniter oauth

Per this question我正在使用CodeIgniter和OAuth 2尝试为我的网络应用程序的内部用户提供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
    (
    )

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

Google access_token怎么样,我现在将它与已存在于users表中的电子邮件一起存储?

相关:我将如何针对该access_token自动验证用户,以便他们不必再次与Google进行整个OAuth审批流程?

1 个答案:

答案 0 :(得分:0)

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