标签: access-token

在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万
查看次数

在Spring Security OAuth2中使用用户名密码授予中的刷新令牌请求新的访问令牌

我们使用username-password grant从我们的auth服务器获取访问令牌.我们希望使用提供的刷新令牌在访问令牌到期之前刷新访问令牌,直到用户注销或关闭客户端应用程序.

但是我找不到任何关于如何发出此刷新令牌请求的示例.

要获得令牌,我们称之为:

curl -v --data "grant_type=password&username=user&password=pass&client_id=my_client" http://localhost:8080/oauth/token
Run Code Online (Sandbox Code Playgroud)

所以要刷新我希望调用看起来像这样:

curl -v --data "grant_type=refresh_token&access_token=THE_ACCESS_TOKEN&refresh_token=THE_REFRESH_TOKEN" http://localhost:8080/oauth/token
Run Code Online (Sandbox Code Playgroud)

或者可能

curl -v -H "Authorization: Bearer THE_ACCESS_TOKEN" --data "grant_type=refresh_token&refresh_token=THE_REFRESH_TOKEN" http://localhost:8080/oauth/token
Run Code Online (Sandbox Code Playgroud)

但它只会给我一个401 ..

哦是的,也许我需要添加clientId?我不能使用客户端密钥,因为没有(请参阅上面获取令牌的请求).毕竟使用用户名和密码进行身份验证.

我认为我们的服务器配置正确,所以我不会在这里发布.如果我的一个示例请求应该工作,并且您需要查看重要的配置部分,我将添加它们.

谢谢!

spring spring-security access-token oauth-2.0 spring-security-oauth2

23
推荐指数
2
解决办法
4万
查看次数

AngularJS - 处理刷新令牌?

我正在与AngularJS建立一个与服务(JAVA)通信的SPA.

当用户发送他的用户名/密码时,服务会发回两个:访问令牌和刷新令牌.我正在尝试处理:如果我得到状态401的响应,则发送回刷新令牌,然后再次发送您的最后一个请求.我尝试使用包含$ http来做到这一点,但angular不允许我将它包含在这个拦截器中.有没有办法用我收到的响应参数重新创建原始请求?

就像是:

  1. 我得到了401
  2. 保存我的请求
  3. 如果我有刷新令牌发送该刷新令牌
  4. 成功后重新发送我的请求
  5. 在错误重定向到/登录页面

    'use strict';
    
    angular.module('testApp')
        .factory('authentificationFactory', function($rootScope, $q, $window, $location, CONF) {
    
    return {
        request: function(config) {
            config.headers = config.headers || {};
            if ($window.sessionStorage.token) {
                config.headers.Authorization = 'Bearer ' + $window.sessionStorage.token;
            }
            console.log(config);
            $rootScope.lastRequest = config;
            return config;
        },
    
        response: function(response) {
            console.log($rootScope.lastRequest);
            if (response.status === 401) {
                if ($window.sessionStorage.refreshToken) {
    
                    //Save, request new token, send old response
                    //if it fails, go to login
    
                    $location.url('/login');
                } else {
                    $location.url('/login');
                }
            }
            return response …
    Run Code Online (Sandbox Code Playgroud)

javascript authentication http-status-code-401 access-token angularjs

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

如何将 github 个人访问令牌添加到 Visual Studio 代码

我收到一封电子邮件,说 Github 将在 2021 年 8 月 13 日之后要求进行令牌身份验证。我想确保在此日期之后我不会中断服务(推/拉)。所以我登录到 Github 并为我的单个 repo创建了一个令牌

现在我想在 Visual Studio Code 中使用令牌从 Github 推/拉我的 repo,它使用 git 和命令行,我已经安装在我的 Mac 上。

问题- 我该怎么做才能使用我刚刚创建的生成的令牌添加/替换来自 Github 的密码以从我的存储库中推送/拉取?我可以从 Visual Studio Code 执行它还是从终端命令行添加它?

git github access-token visual-studio-code

22
推荐指数
6
解决办法
2万
查看次数

使用令牌实现RESTful API身份验证(Yii/Yii2)

我正在Yii 1.x中构建一个API,它将与移动应用程序一起使用.部分过程涉及使用以下JSON请求登录(使用用户名和密码): -

//使用用户名和密码发送的请求

{
"request" : {
    "model" : {
        "username" : "bobbysmith",
        "password" : "mystrongpassword"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

//如果成功登录,则返回以下响应

{
"response": {
    "code": 200,
    "message": "OK",
    "model": {
        "timestamp": 1408109484,
        "token": "633uq4t0qdtd1mdllnv2h1vs32"
    }
 }
}
Run Code Online (Sandbox Code Playgroud)

此令牌非常重要 - 一旦用户登录应用程序,我希望他们可以访问要求他们登录的其他页面.我希望移动应用程序存储此令牌,如果相同的633uq4t0qdtd1mdllnv2h1vs32令牌是在任何后续请求中发现它将接受此作为经过身份验证的请求(对于此用户'bobbysmith').

我有点不确定如何最好地做到这一点,我做了一些研究,oAuth已被提及几次,以及通过HTTPS的基本身份验证.

所以简而言之......

  1. 在移动应用主页上,用户使用其用户名和密码正确登录,并向API发送请求.
  2. 这将返回一个成功的响应(如上所示),其中包含当前时间戳和所有重要令牌.
  3. 同样的用户进入到另一个应用程序页面/图,其中该令牌是)要求和b)如果它匹配了这个认证用户(例如,这样他们就可以编辑该帐户等.)
  4. 一旦用户点击"注销",该令牌就会被删除(并且可以更长时间访问我的帐户等) - 基本上是基于令牌的身份验证系统.

任何人都可以解释实现这一目标的最佳方法吗?如果我所说的内容不是100%明确的,请告诉我,我会提供更多信息.

当我使用PHP时,Yii 1.x解决方案是理想的,因为这是使用当前API构建的.

概括地说,该应用可确保到服务器的每个请求包括在所述有效载荷或报头,以便此令牌可以被检索令牌随后的后,一旦退出该令牌被简单地移除或设置为空/空

php rest restful-authentication yii access-token

21
推荐指数
1
解决办法
4万
查看次数

使用Passport和OAuth2 +社交网络进行NodeJS REST身份验证

我正在REST使用api NodeJS.对于身份验证我决定使用Passport.我想要真正的RESTful api.所以这意味着我必须使用令牌而不是会话.

我想让用户使用用户名和密码登录,或者使用Facebook,Google和Twitter等社交网络.

我创建自己的OAuth2.0服务器来发布AccessRefresh tokens使用oauth2orize模块.所以现在我可以注册新用户,然后发出令牌.我按照本教程:

http://aleksandrov.ws/2013/09/12/restful-api-with-nodejs-plus-mongodb/

验证用户的路由:

// api ------------------------------------------------------------------------------------
    app.get('/api/userInfo',
        passport.authenticate('bearer', { session: false }),
        function(req, res) {
            // req.authInfo is set using the `info` argument supplied by
            // `BearerStrategy`.  It is typically used to indicate scope of the token,
            // and used in access control checks.  For illustrative purposes, this
            // example simply returns the scope in the response.
            res.json({ user_id: req.user.userId, name: req.user.username, …
Run Code Online (Sandbox Code Playgroud)

node.js access-token express facebook-access-token passport.js

21
推荐指数
1
解决办法
9298
查看次数

可以将OAuth 2.0访问令牌作为JWT吗?

据我所知,OAuth 2.0规范access token应采取的形式方面非常模糊:

令牌可以表示用于检索授权信息的标识符,或者可以以可验证的方式自包含授权信息(即,由一些数据和签名组成的令牌串).可能需要额外的身份验证凭据(超出本规范的范围),以便客户端使用令牌.

访问令牌提供抽象层,用资源服务器理解的单个令牌替换不同的授权构造(例如,用户名和密码).这种抽象使得发布访问令牌比用于获取它们的授权授权更具限制性,并且消除了资源服务器理解各种身份验证方法的需要.

访问令牌可以具有基于资源服务器安全性要求的不同格式,结构和利用方法(例如,加密属性). 访问令牌属性和用于访问受保护资源的方法超出了本规范的范围,并由协议规范(如RFC6750)定义.

(重点补充)

链接的RFC6750没有提供更多的进一步特异性.有一个示例HTTP响应正文显示:

{
       "access_token":"mF_9.B5f-4.1JqM",
       "token_type":"Bearer",
       "expires_in":3600,
       "refresh_token":"tGzv3JOkF0XG5Qx2TlKWIA"
     }
Run Code Online (Sandbox Code Playgroud)

这似乎表明access_token可以是不透明的ASCII文本,例如编码的JSON Web令牌(JWT)

从我的角度来看,似乎JWT-as-access_token具有一些理想的属性:

  • 它是一个已知的规范,具有相当广泛的采用和许多语言的客户端库.

  • 它允许使用经过审查的加密库轻松签名和验证.

  • 因为它可以解码为JSON,所以它允许我们在令牌本身中包含有关令牌的元数据和信息.

我的问题是:首先,允许访问令牌是JWT吗?其次,如果根据规范是允许的,那么使用JWT作为访问令牌会有什么额外的考虑因素吗?

oauth access-token oauth-2.0 jwt

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

关于id_token vs access_token的澄清

我正在使用OIDC和OAuth 2.0(使用Auth0)构建一个系统,我不确定如何正确使用id_tokenaccess_token.或者更确切地说,我对在我的设置中分配给各种服务的角色感到困惑.

我有一个完全静态的前端应用程序(单页面应用程序,HTML + JS,没有后端),可确保使用针对Auth0的隐式流程对用户进行身份验证.然后,前端应用程序从我正在构建的API中获取数据.

现在,哪个是对的?

  • 前端SPA是OAuth 客户端应用程序
  • 我的API服务是OAuth 资源服务器

...要么:

  • 前端和我的API服务都是客户端应用程序

如果我的前端和后端API都可以被认为是客户端,我认为在id_token我的前端到后端的请求中使用持票令牌没有真正的危害- 这很有吸引力,因为那时我可以简单地验证签名后的令牌后端,我有关于我需要的用户的所有信息.但是,如果我的API被认为是资源服务器,我应该使用它access_token,但是我必须在每个API请求上连接到Auth0的服务器以验证令牌,并获得基本的用户信息,不是吗?

我已经读过这个似乎表明它access_token是我的API使用的唯一有效令牌.但就像我说的那样,我不确定个别服务的角色.并且使用它id_token很诱人,因为它在后端不需要网络连接,并且包含提取正确数据所需的信息.

什么是正确的方法?

access-token oauth-2.0 openid-connect

21
推荐指数
2
解决办法
8470
查看次数

如何通过命令行更新 GitHub 访问令牌

我使用 git 与 VSCode 集成,今天收到通知,我需要更新我的访问令牌。我这样做并获得了新令牌(我通过网络界面获得)。现在我需要设置本地 git 配置以使用新令牌而不是几天后就会过期的旧令牌。

VSCode文档建议如下:

要执行“GitHub:设置个人访问令牌”,请在 VSCode 中键入 Ctrl+Shift+p 打开命令面板,然后键入“GitHub:设置个人访问令牌”。然后系统会提示您输入从 GitHub 生成的令牌。

此选项在 VS code 中的 git 集成中不可用(也许我需要更新?)

我如何从命令行执行此操作?

windows git access-token visual-studio-code

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

"从主线程中调用此函数可能会导致从GoogleAuthUtil获取accessToken时出现死锁和/或ANR"(Google Plus中的Google Plus集成)

在我的Android应用程序中,我试图从GoogleAuthUtil获取AccessToken,如下所示:

accessToken = GoogleAuthUtil.getToken(this,mPlusClient.getAccountName(),"oauth2:"+ SCOPES);

但在这一行我得到的错误如下:

E/GoogleAuthUtil(4696):调用此从你的主线程可以导致死锁和/或ANR的E/GoogleAuthUtil(4696):java.lang.IllegalStateException:调用该从你的主线程可以导致死锁E/GoogleAuthUtil(4696) :在com.google.android.gms.auth.GoogleAuthUtil.b(未知来源)E/GoogleAuthUtil(4696):在com.google.android.gms.auth.GoogleAuthUtil.getToken(未知来源)E/GoogleAuthUtil(4696) :at com.google.android.gms.auth.GoogleAuthUtil.getToken(Unknown Source)

任何这个问题的解决方案?任何帮助将不胜感激.

android deadlock access-token google-plus

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