小编jj1*_*111的帖子

使用 Google Sign In API 进行 OAuth 后,如何将用户保存到数据库?

我的问题类似于我可以在数据库中保存哪些数据来验证使用 Google 登录 API 的用户?

我已经正确构建了 Google Sign In,并且从 API 收到了如下响应:

{  
   "iss":"https://accounts.google.com",
   "at_hash":"xxx",
   "aud":"xxx.apps.googleusercontent.com",
   "sub":"xxx",
   "email_verified":true,
   "azp":"xxx.apps.googleusercontent.com",
   "email":"xxx@gmail.com",
   "iat":xxx,
   "exp":xxx
}
Run Code Online (Sandbox Code Playgroud)

上面的 SO 链接表示保存子字段,因为这是唯一标识符。我可以保存电子邮件/子邮件,没有问题。我的问题是:如果该用户选择这样做,与 OAuth 相比,我如何允许他们下次使用电子邮件/密码表单登录?我想我可以强制他们通过 OAuth 登录,然后验证他们是否已登录并让他们创建密码,但我不知道这是否是最好的方法。

oauth-2.0 google-signin

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

golang自定义struct undefined,无法正确导入

我有2个兄弟文件:main和test_two.每个文件分别是main.go和test_two.go文件.在一个我有一个自定义结构,而在另一个我想运行一个函数与该结构作为一个参数.我收到错误"undefined:Struct".

package main

import "github.com/user/test_two"

type Struct struct {
    Fn    string
    Ln    string
    Email string
}

func main() {
    foo := new(Struct)
    foo.Fn = "foo"
    foo.Ln = "bar"
    foo.Email = "foo@bar.com"
    test_two.Fn(foo)
Run Code Online (Sandbox Code Playgroud)

test_two.go:

package test_two

import (
    "fmt"
)

func Fn(arg *Struct) {
    fmt.Println(arg.Fn)
}
Run Code Online (Sandbox Code Playgroud)

go

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

golang测试错误:在以下任何位置都找不到软件包“ github.com/stretchr/testify/assert”:

我的导入如下所示:

import (
"testing"

"github.com/stretchr/testify/assert"
)
Run Code Online (Sandbox Code Playgroud)

当我尝试运行“ go test”时,出现错误消息:

cannot find package "github.com/stretchr/testify/assert" in any of:
/Users/[username]/go/src/github.com/[group_name]/[project_name]/vendor/github.com/stretchr/testify/assert (vendor tree)
/usr/local/go/src/github.com/stretchr/testify/assert (from $GOROOT)
/Users/[username]/go/src/github.com/stretchr/testify/assert (from $GOPATH)
FAIL    github.com/[group_name]/[project_name]/lib/briteverify [setup failed]
Run Code Online (Sandbox Code Playgroud)

因此,似乎最后一行是问题所在,它在... / lib / briteverify中表示找不到github.com/stretchr/testify/assert。但是,我将此作为导入文件,所以不知道为什么会引发此错误。有什么想法吗?

go testify

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

golang使用解析标准库从电子邮件获取域

我在拔出电子邮件域时遇到了麻烦。我试过使用

u, _ := url.Parse(email) 
Run Code Online (Sandbox Code Playgroud)

和标准库中的其他解析,但似乎没有解析的内容:user@gmail.com分成单独的部分。

我也尝试过net.SplitHostPort,但是没有运气。

我不想创建一个函数,该函数在可能的情况下获取len并分开以在@符号后获取子字符串。

有人有任何想法可以做到这一点吗?

谢谢!

parsing go

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

golang TestMain()函数设置测试无法访问的变量

我有以下TestMain函数:

func TestMain(m *testing.M) {
  db := "[working_db_connection]"
  dbInstance, _ := InitializeRepo(db, 2)
  runTests := m.Run()
  os.Exit(runTests)
}
Run Code Online (Sandbox Code Playgroud)

以及样本测试

func TestSomeFeature(t *testing.T) {
  fmt.Println(dbInstance)
}
Run Code Online (Sandbox Code Playgroud)

函数TestSomeFeature确实运行,但是说dbInstance是未定义的.为什么这不能访问变量?从示例中我可以看到使用此语法访问TestMain中的变量et.

testing go

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

标签 统计

go ×4

google-signin ×1

oauth-2.0 ×1

parsing ×1

testify ×1

testing ×1