当前位置: 首页 > 知识库问答 >
问题:

无法刷新访问令牌。请重新验证

葛俊
2023-03-14

我在刷新访问令牌时得到这个错误:访问令牌无法刷新。请重新验证

这一错误此前曾在2017年4月报告过。OneLogin文档声明刷新令牌可以使用45天左右。我的刷新令牌已经有20个小时了。是文档正确还是刷新令牌的寿命更短?我可以做获取访问令牌和撤销令牌罚款。

public RootObject RefreshToken(HttpRequesterDM rDM){restsharp.deserializers.jsondeserializer deserial=new restsharp.deserializer();var client=new RestClient(“https://api.us.onelogin.com/auth/oauth2/token”);var request=new RestRequest(method.post);string clientAuth=$“client_id:{rDM.clientid},client_secret:{rDM.clientsecret}”;string

        request.AddParameter("application/json", "{\n\"access_token\":\" + accessToken + \"\n}", ParameterType.RequestBody);
        request.AddParameter("application/json", "{\n\"refresh_token\":\" + refreshToken + \"\n}", ParameterType.RequestBody);
        IRestResponse response = client.Execute(request);

        RootObject returnData = deserial.Deserialize<RootObject>(response);
        if (returnData.status.message == "Access token cannot be refreshed. Please re-authenticate")
        {
            RootObject rObject = GetToken(rDM);
            return rObject;
        }
        if (returnData.data[0].access_token != null)
        {
            access = returnData.data[0].access_token; //This correctly gets the Access Token. You should return this to a class variable so that all the  other functions can access it easily and you're not constantly passing along the variable through them.

        }
        return returnData;

共有1个答案

曾高杰
2023-03-14

刷新令牌可以过期、吊销或拒绝。由于OneLogin是一个SSO,用户可能已经注销了他们的身份提供程序,从而使刷新令牌失效。您将需要设计您的软件来处理错误和边缘情况。错误信息是清楚的,您的用户必须再次进行身份验证。在您的代码中没有什么要做/更改/更正的,除非您正在发送一个无效/错误的刷新令牌。

 类似资料:
  • https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id=your_app_client_id&response_type=code&redirect_uri=https%3a%2f%2flogin.microsoftonline.com%2fcommon%2foauth2%2fnativeclient&res

  • 目前访问类型处于联机状态。当我需要访问驱动器上的文件/文件夹时,我将浏览器重定向到Google URL并获得访问代码: 一切运转良好!但我只需要第一次重定向。 当我谷歌时,在google Drive API文档中,我发现我可以通过浏览器重定向获得刷新令牌,并将其保存在数据库中。(换句话说,我可以使用脱机访问)。 而且每次当我需要从google drive读取数据时,我使用刷新令牌获得访问令牌,而无

  • 本文向大家介绍oauth 刷新访问令牌,包括了oauth 刷新访问令牌的使用技巧和注意事项,需要的朋友参考一下 示例 资源

  • 若授权服务器给客户端颁发了刷新令牌,客户端通过使用按附录B“application/x-www-form-urlencoded”格式在HTTP请求实体正文中发送下列UTF-8字符编码的参数向令牌端点发起刷新请求: grant_type 必需的。值必须设置为“refresh_token”。 refresh_token 必需的。颁发给客户端的刷新令牌。 scope 可选的。如3.3节所述的访问请求的范

  • 我不熟悉,它代表。我混淆了它的两个术语:访问令牌和刷新令牌。 用户注册/登录站点后,我创建和。 将刷新标记保存在数据库或cookie中。 15分钟后,用户标记访问令牌过期。 如果用户空闲2小时,我将从cookie或DB中删除刷新令牌,否则我将使用刷新令牌续订访问令牌。 有什么优化的方法可以达到这个目的吗?

  • 我已经阅读了JWT和访问令牌和刷新令牌。我知道您必须在很短的时间(分钟)内设置访问令牌过期,并在过期时使用刷新令牌获取新的访问令牌。 我不清楚三件事: 谁检查访问令牌是否过期?客户端是否通过发送过期的访问令牌和刷新来检查并请求新的访问代码? 谁检查刷新令牌是否过期?(显然刷新令牌也需要过期,尽管需要更长的时间才能过期)。 在我看来,如果刷新令牌过期,则必须提示用户重新登录。在某些情况下(移动应用)