标签: access-token

如何在iOS上获取Facebook访问令牌

iOS初学者在这里.我有以下代码:

[facebook authorize:nil delegate:self];
NSString *string1=[facebook accessToken];
NSLog(string1);
Run Code Online (Sandbox Code Playgroud)

日志显示: miFOG1WS_7DL88g6d95Uxmzz7GCShsWx_FHuvZkmW0E.eyJpdiI6IjNZZkFBY1c5ZnBaMGEzOWM2RzNKbEEifQ.LNjl06lsOQCO9ArVARqff3Ur2XQHku3CMHDBKkpGg351EB33LGxVv96Hh5R860KDJL0cLq8QezSW0GovYxnhUucOwxlITV364sVKDXIzC3bAn9P_74r2Axl1SgOaTyMMkQ_aSQ2OWh-8d3Zn9BDt3pXVWzBLJ9I4XAosnw0GjuE

这似乎太长,不能成为访问令牌.我读过它应该只有40个字符.我究竟做错了什么?

iphone facebook access-token

35
推荐指数
3
解决办法
5万
查看次数

如何在角度5中解码客户端的JWT编码令牌有效负载?

我从我的API获得一个JWT编码的访问令牌作为响应.但我无法解码它并以JSON格式获取它.我尝试使用angular2-jwt库,但它没有用.我正在编写下面的代码:

 setXAuthorizationToken(client){
    let requestHeader = new Headers();
    requestHeader.append('Content-Type', 'application/x-www-form-urlencoded');
    this.http.post(client.clientURL + "oauth/token", 'grant_type=password&client_id=toto&client_secret=sec&' +  'username=' + client.username
    + '&password=' + client.password, {
      headers: requestHeader
    }).map(res=>res.json())
    .subscribe((token) =>{
      if(!token.access_token){
          return;
      }
      else{
       var decompressToken = LZString.decompressFromEncodedURIComponent(token.access_token);
       console.log(decompressToken);




}


    });
    }
Run Code Online (Sandbox Code Playgroud)

有人可以帮我解决这个问题吗?

decode access-token jwt angular

34
推荐指数
4
解决办法
5万
查看次数

"刷新令牌"的目的是什么?

我有一个与YouTube直播API集成的程序.它运行在计时器上,因此我可以通过刷新令牌每隔50分钟编程一次获取新的访问令牌.我的问题是,为什么?

当我通过YouTube验证时,它给了我一个刷新令牌.然后,我使用此刷新令牌大约每小时获取一个新的访问令牌.如果我有刷新令牌,我总是可以使用它来获得一个新的访问令牌,因为它永远不会过期.所以我不知道这是多么安全,而不仅仅是从一开始就给我一个访问令牌,而不是整个刷新令牌系统.

authentication oauth youtube-api access-token refresh-token

33
推荐指数
8
解决办法
1万
查看次数

从GitHub存储个人访问令牌的位置?

在GitHub中生成个人访问令牌后,是否有必要将其存储在本地的某个位置?

如果是,是否有任何可以存储的首选方式?

git github access-token

30
推荐指数
8
解决办法
2万
查看次数

Azure 应用服务部署无法获取资源类型“Microsoft.Web/Sites”的资源 ID

在过去的 6 个月中,我一直在使用 Azure DevOps 中的管道进行发布,但今天我收到以下错误:

2019-09-25T14:24:38.4296875Z ##[section]Starting: Azure App Service Deploy: AS-ServiciosNegocio-API-UAT
2019-09-25T14:24:38.4419797Z ==============================================================================
2019-09-25T14:24:38.4419900Z Task         : Azure App Service deploy
2019-09-25T14:24:38.4419986Z Description  : Deploy to Azure App Service a web, mobile, or API app using Docker, Java, .NET, .NET Core, Node.js, PHP, Python, or Ruby
2019-09-25T14:24:38.4420053Z Version      : 3.4.31
2019-09-25T14:24:38.4420117Z Author       : Microsoft Corporation
2019-09-25T14:24:38.4420182Z Help         : https://docs.microsoft.com/azure/devops/pipelines/tasks/deploy/azure-rm-web-app-deployment
2019-09-25T14:24:38.4420291Z ==============================================================================
2019-09-25T14:24:39.1630446Z Got connection details for Azure App Service:'AS-ServiciosNegocio-API-UAT'
2019-09-25T14:24:39.3091141Z ##[error]Error: Failed to get resource ID for resource type …
Run Code Online (Sandbox Code Playgroud)

deployment access-token azure-web-app-service azure-devops azure-pipelines-release-pipeline

30
推荐指数
5
解决办法
2万
查看次数

JWT 刷新令牌的全部意义是什么?

我已经读了一段时间了,没有任何意义,而且解释相互矛盾,评论证明了这一点。

到目前为止,我的理解是 JWT 存储由服务器编码的信息,可以有过期时间,并且服务器及其密钥可以解码其中的信息(如果它有效)。说得通。

它对于可扩展性很有用,因此独立的 API 可以解码并验证令牌中的信息,只要它们拥有密钥。此外,不需要将信息存储在任何数据库中,这与会话不同。说得通。

如果令牌被盗,API 无法判断令牌是否由正确的人使用。这是上面的缺点。

通过减少令牌的过期时间,可以减少安全漏洞,从而减少窃贼未经许可使用令牌的时间。(附带问题,但如果他们能够偷一次,他们可能也会偷第二次)

但是减少令牌的有效时间意味着每次令牌过期时用户都需要登录,并且如上所述,这种情况相当频繁,因此不会提供太好的用户体验。说得通。

从现在开始,一切都没有意义了:

引入刷新令牌可以解决这个问题,因为它的过期时间更长。使用刷新令牌可以生成访问令牌,因此只要用户拥有刷新令牌(时间较长)就可以登录,而被盗的访问令牌仍然仅在短时间内有效。

对我来说,上述内容似乎增加了一层额外的复杂性,而安全性没有任何改进。即对我来说,上面的内容似乎等于一个长期存在的访问令牌。

为什么?因为对我来说,刷新令牌基本上是一个访问令牌(因为这就是它生成的)。因此,拥有刷新令牌意味着无限制的访问令牌,因此无限制地访问 API。

然后我读到一个答案,刷新令牌和访问令牌是一对一的映射,因此窃取访问令牌仍然意味着对 API 的未经授权的访问,但只持续很短的时间,并且窃取刷新令牌将生成不同的访问令牌,以便 API 可以检测到异常(同一帐户使用不同的访问令牌),从而使访问令牌失效。

看来我不是唯一一个对这个问题感到困惑的人。

如果上述情况不正确,刷新令牌有何真正帮助?

如果上述情况成立,并且确实存在刷新令牌和访问令牌的一对一映射:

  • 它完全失去了“无国籍”的好处
  • 用户无法从多个设备登录(这将是“异常”)
  • 我无法理解访问令牌如何失效 - 令牌数据中是否存储了会话 ID,或者用户被“阻止”?

如果有人能澄清这个问题那就太好了,因为从 5 个解释中,有 5 个相互冲突的陈述(有时相同的解释包含冲突的信息),并且许多开发人员都想了解这种方法。

security authentication access-token jwt refresh-token

28
推荐指数
1
解决办法
7054
查看次数

为什么不能窃取访问令牌?

我正在学习OAuth,我有一个问题,我无法找到一个anwser ..

我理解请求令牌授权或不授权应用程序使用API​​.但是一旦用户获得了访问令牌,如果有人窃取了他的访问令牌会发生什么?

想象一下,我们有像http://www.example.com/api/article/1?access_token=******access_token******

如果我将此URL提供给其他用户,则另一个用户可以访问,因此API不再受保护了吗?

security oauth access-token

25
推荐指数
1
解决办法
6437
查看次数

在Facebook应用程序中获取访问令牌时应该是redirect_uri?

$token_url = "https://graph.facebook.com/oauth/access_token?client_id="
    . $app_id . "&redirect_uri=" . urlencode($my_url) 
    . "&client_secret=" . $app_secret 
    . "&code=" . $code;
Run Code Online (Sandbox Code Playgroud)

什么应该是redirect_uri?我试过用这个

'https://graph.facebook.com/oauth/authorize?client_id='.$app_id.'&
redirect_uri='.urlencode($canvas_page).'&scope=email,read_stream,publish_stream';
Run Code Online (Sandbox Code Playgroud)

但它返回时出现此错误

{
   "error": {
      "message": "Error validating verification code.",
      "type": "OAuthException"
   }
}
Run Code Online (Sandbox Code Playgroud)

需要帮助,提前致谢.

facebook oauth access-token facebook-oauth

24
推荐指数
1
解决办法
5万
查看次数

移动应用的OAuth2访问令牌是否必须过期?

这里接受的答案是为什么OAuth2访问令牌到期:

  • 许多提供商支持承载令牌,这些令牌在安全方面非常弱.通过使它们短暂存在并需要刷新,它们可以限制攻击者滥用被盗令牌的时间.(这是什么意思?我认为这意味着允许在没有TLS的情况下进行传输?还有其他什么?).
  • 大规模部署不希望每次API调用都执行数据库查找,因此它们会发出自编码访问令牌,可以通过解密来验证.但是,这也意味着无法撤销这些令牌,因此它们会在短时间内发布并且必须刷新.
  • 刷新令牌需要客户端身份验证,这使其更强大.与上述访问令牌不同,它通常通过数据库查找来实现.

假设我们不支持访问令牌的非加密传输,则需要处理第一个项目符号.

假设我们可以对可撤销的数据库进行查找,完全随机的访问令牌负责第二个.

对于移动应用程序,客户端身份验证不能更强,因为"在注册期间获取的client_id和client_secret都嵌入在应用程序的源代码中.在这种情况下,client_secret显然不被视为机密." (谷歌).这消除了第三个问题.

那么在这种情况下分离短期访问令牌和长期刷新令牌有什么好处呢?仅发出非过期访问令牌并忽略整个刷新令牌部分是"可以的"吗?

security access-token oauth-2.0

24
推荐指数
2
解决办法
1万
查看次数

从后台服务和上传文件验证Sharepoint站点

我正在尝试对Sharepoint进行身份验证,以便我可以将文件上传到特定的Sharepoint站点.

我正在尝试使用X.509证书来检索访问令牌,但我一直在(401):未经授权.

这是我尝试使用证书检索访问令牌的方式:

string authority = SettingsHelper.Authority;
string clientID = SettingsHelper.ClientId;
string serverName = SettingsHelper.SharepointServerName;
//Retreive the certificate path
string certFile = Server.MapPath(SettingsHelper.CertificatePath);
string certPassword = SettingsHelper.CertificatePassword;

AuthenticationResult authenticationResult = null;
AuthenticationContext authenticationContext = new AuthenticationContext(authority);

//Create the certificate file, using the path (certFile), password (certPassword) and the MachineKeySet
X509Certificate2 cert = new X509Certificate2(certFile, certPassword, X509KeyStorageFlags.MachineKeySet);

//Create the ClientAssertionCertificate using the clientID and the actual certificate
ClientAssertionCertificate cac = new ClientAssertionCertificate(clientID, cert);

//Retreive the access token using the serverName and …
Run Code Online (Sandbox Code Playgroud)

c# sharepoint oauth access-token office365

24
推荐指数
1
解决办法
1128
查看次数