chyroc / stackoverflow-go-top-qa

stackoverflow 有关golang的高票问答
0 stars 0 forks source link

如何管理认证(authentication) #23

Open chyroc opened 7 years ago

chyroc commented 7 years ago

https://stackoverflow.com/questions/25218903/how-are-people-managing-authentication-in-go

对于在Go中构建RESTful API和JS前端应用程序的用户,您如何管理身份验证?你使用任何特定的库或技术吗?

我很惊讶地发现这么少的讨论。我记得如下的答案,并试图避免开发自己的实现:

Authentication Form in ASP.Net

每个人都分别编写自己的解决方案吗?

chyroc commented 7 years ago

这个问题有很多观点 - 并且有一个热门问题的徽章 - 所以我知道这个话题有很多潜在的兴趣,很多人都在问及完全一样的事情,而不是在网上找到答案。

大多数可用的信息导致手工波浪的文字等同物,作为“读者的练习” 🙂。

然而,我终于找到了一个具体的例子(慷慨)由golang-nuts邮件列表的成员提供:

https://groups.google.com/forum/#!msg/golang-nuts/GE7a_5C5kbA/fdSnH41pOPYJ

这提供了建议的模式和服务器端实现,作为自定义身份验证的基础。客户端代码仍然取决于您。

(我希望帖子的作者看到这个:谢谢!)

摘录(并重新格式化):

--

我会建议像以下设计:

create table User (
 ID int primary key identity(1,1),
 Username text,
 FullName text,
 PasswordHash text,
 PasswordSalt text,
 IsDisabled bool
)

create table UserSession (
 SessionKey text primary key,
 UserID int not null, -- Could have a hard "references User"
 LoginTime <time type> not null,
 LastSeenTime <time type> not null
)