服务器端与客户端流程

服务器端与客户端流程

本文介绍了Facebook 访问令牌:服务器端与客户端流程的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

Facebook 文档:

Facebook 平台支持两种不同的用户登录 OAuth 2.0 流程:服务器端(在规范中称为身份验证代码流)和客户端(称为隐式流).每当您需要从 Web 服务器调用 Graph API 时,都会使用服务器端流程.当您需要从客户端(例如在 Web 浏览器中运行的 JavaScript 或从本机移动或桌面应用程序中运行的 JavaScript)调用 Graph API 时,将使用客户端流程.

这些流获取的访问令牌之间有什么区别?它们的长度似乎不同.

What is the difference between access tokens taken by these flows?It seems like they length differ.

我们可以在客户端上使用服务器端流令牌吗?否则,我们可以在服务器上使用客户端流令牌吗?

Can we use server-side flow token on a client? And otherwise, can we use client-side flow token on a server?

推荐答案

目前,Facebook 表示这是关于 access_tokens.在服务器端 OAuth

Currently, Facebook says this about access_tokens. On Server-side OAuth

如果 access_token 是从服务器端 OAuth 调用生成的,则结果 access_token 将有更长的到期时间默认.如果调用时仍然存在有效的长寿命该用户的用户 access_token,从返回的用户 access_token这第二个调用可能是相同的,也可能已经改变,但在任何一个如果过期时间将设置为很长的过期时间.

客户端 OAuth 流程将为您提供现有的、未过期的、短期存在的用户 access_token.为了使这个 access_token 长期存在,facebook 提供了一个新的端点,将短期的 access_token 与寿命更长的 access_token 交换.终点是

Where as client-side OAuth flow will give you a existing, non-expired, short-lived user access_token. To make this access_token long lived, facebook is providing a new endpoint that exchanges the short lived access_token with an access_token with longer life. The endpoint is

https://graph.facebook.com/oauth/access_token?
    client_id=APP_ID&
    client_secret=APP_SECRET&
    grant_type=fb_exchange_token&
    fb_exchange_token=EXISTING_ACCESS_TOKEN

另外请注意

目前长寿命用户access_token有效期为60天而短期用户 access_tokens 当前有效时间为 1 到2 小时.

摘自 https://developers.facebook.com/docs/roadmap/完成更改/离线访问删除/

这篇关于Facebook 访问令牌:服务器端与客户端流程的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-06 20:49