小编Gro*_*ify的帖子

Golang 和 JWT - 简单注销

我目前正在开发一个 API,经过一段时间后,我现在了解如何在 Go 中使用 JWT 来获取令牌。使用此令牌,我可以保持用户连接,但是如何从客户端应用程序注销?

这是我的token.go代码:

package main

import (
    "github.com/dgrijalva/jwt-go"
    "time"
)

const (
    tokenEncodeString = "something"
)

func createToken(user User) (string, error) {
    // create the token                                                                                                                                                                                  
    token := jwt.New(jwt.SigningMethodHS256)

    // set some claims                                                                                                                                                                                   
    token.Claims["username"] = user.Username;
    token.Claims["password"] = user.Password;
    token.Claims["exp"] = time.Now().Add(time.Hour * 72).Unix()

    //Sign and get the complete encoded token as string                                                                                                                                                  
    return (token.SignedString([]byte(tokenEncodeString)))
}

func parseToken(unparsedToken string) (bool, string) {
    token, err := jwt.Parse(unparsedToken, func(token *jwt.Token) (interface{}, error) {
            return []byte(tokenEncodeString), nil …
Run Code Online (Sandbox Code Playgroud)

token go logout jwt jwt-go

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

Swagger文档

如何在swagger中为对象数组编写文档.这是我的代码,但我不知道如何访问对象数组中的数据.

{ 
    "first_name":"Sam",
    "last_name":"Smith",  
    "reservations":[
        {
            "chkin_date":"2016-03-31",
            "chkout_date":"2016-04-08",
            "adults":1,
            "children":2,
            "chdage":[2,3]
        },
        {
            "chkin_date":"2016-03-30",
            "chkout_date":"2016-04-03",
            "adults":1,
            "children":2,
            "chdage":[2,3,5]
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

swagger

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

Google-api-go-client:列出带有标签的消息并获取标头字段

我想列出带有特定标签的消息。所以我使用了谷歌Go Quickstart 代码并将范围设置为 gmail.MailGoogleComScope。

使用此代码获取带有标签“INBOX”的所有邮件列表可以正常工作

    mes, err := srv.Users.Messages.List(user).LabelIds("INBOX").Do()
Run Code Online (Sandbox Code Playgroud)

但是当我用“测试”替换“收件箱”时,出现错误:

无法检索消息。googleapi:错误 400:无效标签:TEST,invalidArgument 退出状态 1

并且有一个名为 TEST 的标签。我究竟做错了什么?

google-api go gmail-api google-api-go-client

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

OAuth2:使用 PKCE 而不是 client_secret

我有一个使用 OAuth2 的隐式授权进行身份验证的网络应用程序。

我希望能够使用刷新令牌长时间保持会话处于活动状态。但由于我无法安全地将 client_secret 存储在 Web 应用程序中,因此我无法使用传统的Authorization Code grant

使用PKCE代替 client_secret是否安全,或者我这样做是否会失去一定程度的安全性?

oauth-2.0 pkce

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

如何获得Go dependents列表

在构建依赖关系图之前,是否存在一种在给定目标包的情况下检索依赖包列表的现有方法?

Sourcegraph有一个徽章(盾牌),显示有多少包使用特定包,但当我点击他们的链接转到他们的UI时,我找不到包的计数或列表.这里有更多信息:

  • Sourcegraph文章:https://about.sourcegraph.com/blog/see-how-many-people-use-your-library-with-sourcegraph-badges/

示例徽章:

Sourcegraph

GitHub有一个依赖图,但它似乎没有列出Go的包,它的文档只提到JavaScript和Ruby,如下所示:

dependencies github go

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

TypeScript从泛型类型创建对象

我正在寻找一个基于泛型类型的对象,但无法弄清楚语法。我想要的是这样的示例:

myfunc<T>() : T[] {
    let obj = new T();
    let obj2 = new T();

    return [obj, obj2];
}
Run Code Online (Sandbox Code Playgroud)

new T()当然不会编译。在C#中,我将添加一个where T : new约束以使其正常工作。TypeScript中的等效项是什么?

typescript

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

当在循环内创建 JWT 令牌时,在 jwt-go 中获取相同的令牌

我正在使用 jwt-go 库创建 jwt 令牌。后来写了一个脚本来加载测试。我注意到当我发送许多并发请求时获得相同的令牌。为了检查更多信息,我在 for 循环中创建了令牌,结果是相同的。

我使用的库是https://github.com/dgrijalva/jwt-go,go 版本是 1.12.9。

expirationTime := time.Now().Add(time.Duration(60) * time.Minute)

    for i := 1; i < 5; i++ {
        claims := &jwt.StandardClaims{
            ExpiresAt: expirationTime.Unix(),
            Issuer:"telescope",
        }
        _token := jwt.NewWithClaims(jwt.SigningMethodHS256, claims)
        var jwtKey = []byte("secret_key")
        auth_token, _ := _token.SignedString(jwtKey)
        fmt.Println(auth_token)
    }
Run Code Online (Sandbox Code Playgroud)

go jwt jwt-go

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

如何将科学计数法字符串转换为big.Int?

在golang中,我在一个字符串中有一个很大的数字,如下所示:“4.49955000449955e+24”。

我怎样才能将其转换为 a big.Int

go

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

解组 JSON 并区分缺失键和空值

我正在使用一个应用程序 API,它以null不同的方式处理 JSON 中缺失的键和值。{"value":null}它可能会像or一样返回 JSON {}- 如果密钥存在,它们意味着不同的东西。我的问题是我需要将数据解组为 a struct,然后编组回 JSON,保留这种细微差别。

如果我定义一个结构,如:

type Test struct {
    Value *string `json:"value,omitempty"`
}
Run Code Online (Sandbox Code Playgroud)

然后{"value":null}将其编组为 JSON 作为{}.

如果我定义一个结构,如:

type Test struct {
    Value *string `json:"value"`
}
Run Code Online (Sandbox Code Playgroud)

然后{}将其编组为 JSON 作为{"value":null}.

有没有办法处理从 JSON 读取的 null 和缺失键,并保留缺失键与 null 值之间的差异?

api json go

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

在<a> </a>中使用"&"

目前,我有:

<a href="process.php?action=start&pid=1">Start Process</a>
Run Code Online (Sandbox Code Playgroud)

但是,我通过W3 HTML验证器(https://validator.w3.org)运行此代码,它出现了这个:

& did not start a character reference. (& probably should have been escaped as &amp;.)
Run Code Online (Sandbox Code Playgroud)

是否有另一种正确的方法将"&"放入<a></a>标签中,或者我应该像它一样离开它?

html html5

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