使用Instagram OAuth保存登录会话状态

时间:2013-12-05 22:36:22

标签: php cookies oauth server-side instagram

目前,我有一个页面,其中包含使用Instagram链接到OAuth的链接。如果登录成功,我将被重定向回与用户信息相同的php页面。但是,如果我刷新页面,用户将再次看到登录链接(当用户登录时它将被隐藏)。我知道我应该使用cookie来保存状态信息,但是我应该在cookie中存储什么?如果我存储用户名(仅在成功登录时返回),那么这是不安全的,因为任何人都可以使用任何其他用户名在自己的计算机上修改cookie并获得对其帐户的访问权限吗?

1 个答案:

答案 0 :(得分:0)

如果您遵循服务器端身份验证流程,您的回调页面应在网址中收到access_token,因此:

  1. 使用您的应用凭据(客户端ID和重定向uri)将用户发送到https://api.instagram.com/oauth/authorize/?client_id=CLIENT-ID&redirect_uri=REDIRECT-URI&response_type=code ...确保您的回复类型为code。如果用户拒绝,则会使用error参数
  2. 将其重定向到您的uri
  3. 当用户对您的应用进行身份验证时,系统会使用code参数http://your-redirect-uri?code=CODE
  4. 将其重定向到您的重定向uri
  5. 现在您可以获取访问令牌,这是您应该存储在cookie中的内容。从您的后端发送POST请求(使用cURL或类似的PHP)发送给Instagram,要求使用参数coderedirect_uri,'grant_type = authorization_code'和您的{{ {1}}
  6. 来源:http://instagram.com/developer/authentication/