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