当前位置: 首页 > 面试题库 >

大部分情况下,使用client4 go驱动程序使用个人访问令牌登录的正式方法是什么?

秦宏盛
2023-03-14
问题内容

我们正在运行两个最重要的服务器。

我们有一个使用https://github.com/Vaelor/python-mattermost-
driver
通过社区Python驱动程序使用个人访问令牌登录的python进程。此过程的会话不会超时,这是使用个人访问令牌登录的好处之一。
https://docs.mattermost.com/developer/personal-access-
tokens.html。

我们通过client4 go驱动程序使用用户名和密码登录,此方法有效,但过一会儿就会超时。似乎无法使用个人访问令牌通过官方客户端4驱动程序登录。

Mattermost Client4代码的文档位于
https://godoc.org/github.com/mattermost/platform/model#Client

client4的来源位于https://github.com/mattermost/mattermost-
server/blob/master/model/client4.go

看起来最有效的方法是使用用户名和密码登录,然后通过client.MockSession设置身份验证令牌,该令牌在测试中失败。

大部分情况下,使用client4 go驱动程序使用个人访问令牌登录的正式方法是什么?


问题答案:

关键是 登录,设置个人访问令牌并调用client.GetMe。通过查看python驱动程序源代码后,这一点变得很清楚。相关的片段是。

    fmt.Println("LoginAsTheBotUser", "Using personal access token")
    client.AuthToken = mattermost_personal_access_token
    client.AuthType = model.HEADER_TOKEN
    if user, resp := client.GetMe(""); resp.Error != nil {
        println("There was a problem logging into the Mattermost server.  Are you sure the access token is valid?")
        PrintError(resp.Error)
    } else {
        fmt.Println(client)
        botUser = user
        result = true
    }

上下文。

/* 
    mattermost_user_email, mattermost_user_password and mattermost_personal_access_token
    are globals set from reading a .env file on startup
    */
func LoginAsTheBotUser() bool {
    fmt.Println("LoginAsTheBotUser")
    fmt.Println("LoginAsTheBotUser", time.Now())
    var result bool = false
    if mattermost_personal_access_token == "" {
        fmt.Println("LoginAsTheBotUser", "Getting access token from login with username and password")
        if user, resp := client.Login(mattermost_user_email, mattermost_user_password); resp.Error != nil {
            println("There was a problem logging into the Mattermost server.  Are you sure ran the setup steps from the README.md?")
            PrintError(resp.Error)
        } else {
            fmt.Println(client)
            botUser = user
            result = true
        }
    } else {
        fmt.Println("LoginAsTheBotUser", "Using personal access token")
        client.AuthToken = mattermost_personal_access_token
        client.AuthType = model.HEADER_TOKEN
        if user, resp := client.GetMe(""); resp.Error != nil {
            //if user, resp := client.Login(mattermost_personal_access_token); resp.Error != nil {
            println("There was a problem logging into the Mattermost server.  Are you sure the access token is valid?")
            PrintError(resp.Error)
        } else {
            fmt.Println(client)
            botUser = user
            result = true
        }
    }
    fmt.Println("LoginAsTheBotUser", time.Now())
    fmt.Println("LoginAsTheBotUser")
    return result
}


 类似资料:
  • 我试图使用从身份提供者检索到的访问令牌获取cognito身份。有点像这里。这里描述的AWS SDK的这一部分似乎存在问题,因此我正在尝试找到解决方法。 当我运行代码我得到以下错误: 任务结果:nil Error-Error-Domain=com.amazonaws.AWSCognitoIdentityErrorDomain-Code=8“(null)”UserInfo={{uuuuu-type=N

  • 不久前我在GitHub上设置了2因子身份验证。所以,有一次我在命令行中工作,想要推到我的repo。我输入了我的用户名和密码,但它失败了,给出了如下错误 所以,我读了这篇文章,得到了我必须生成一个个人访问令牌来推送任何东西的解决方案。很好,但我认为这是一个有点困难的过程,因为首先我不记得那个巨大的令牌,其次,将访问密钥存储在文本文件中不是一件安全的事情。 所以,如果有人能给出一个简单的解决方案,推动

  • 我知道之前有人对此提出过疑问,但在尝试推送存储库时,我仍然会遇到一个恼人的错误: 在我输入我的个人访问令牌后,它会出错: 远程:2021 8月13日取消了对密码验证的支持。请使用个人访问令牌。遥控器:请看https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/了解更多信息。致命:身份验证

  • 在PHP中编码,我尝试初始化Spotify API,不使用重定向uri,只使用client_id和client_secret。我尝试下面的代码:从响应url中提取令牌-Spotify API,但我得到一个NULL结果 我想知道我是否可以在不要求用户登录的情况下访问令牌(参见https://developer.spotify.com/web-api/authorization-guide/#auth

  • 当我使用自己的客户端id在浏览器中转到以下URL时: https://account-d.docusign.com/oauth/auth?response_type=token 我需要登录,然后我被重定向到:http://localhost:8888/auth#access_token=myAccessToken 现在我有一个节点。在js应用程序中,我想使用我的访问令牌进行API调用,直到现在,我

  • 我使用https://github.com/kunalvarma05/dropbox-php-sdk我的php项目上传文件在dropbox。 在这里,我不需要任何用户使用Dropbox,它只适用于内部用户,因此我可以在我的Dropbox上上传文件。 我从Dropbox应用程序生成了访问令牌,一切正常,但令牌在一段时间后过期。我做了一次 Oauth 登录以重新生成令牌,但新令牌在一段时间后也过期了。