Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit5f56829

Browse files
committed
chore: make cli session keys respect--session-duration
1 parent9da6467 commit5f56829

File tree

2 files changed

+39
-5
lines changed

2 files changed

+39
-5
lines changed

‎coderd/apikey.go‎

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -125,16 +125,11 @@ func (api *API) postAPIKey(rw http.ResponseWriter, r *http.Request) {
125125
ctx:=r.Context()
126126
user:=httpmw.UserParam(r)
127127

128-
lifeTime:=time.Hour*24*7
129128
cookie,_,err:=api.createAPIKey(ctx, apikey.CreateParams{
130129
UserID:user.ID,
131130
DefaultLifetime:api.DeploymentValues.Sessions.DefaultDuration.Value(),
132131
LoginType:database.LoginTypePassword,
133132
RemoteAddr:r.RemoteAddr,
134-
// All api generated keys will last 1 week. Browser login tokens have
135-
// a shorter life.
136-
ExpiresAt:dbtime.Now().Add(lifeTime),
137-
LifetimeSeconds:int64(lifeTime.Seconds()),
138133
})
139134
iferr!=nil {
140135
httpapi.Write(ctx,rw,http.StatusInternalServerError, codersdk.Response{

‎coderd/apikey_test.go‎

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -224,3 +224,42 @@ func TestAPIKey_Deleted(t *testing.T) {
224224
require.ErrorAs(t,err,&apiErr)
225225
require.Equal(t,http.StatusBadRequest,apiErr.StatusCode())
226226
}
227+
228+
funcTestAPIKey_Refresh(t*testing.T) {
229+
t.Parallel()
230+
231+
db,pubsub:=dbtestutil.NewDB(t)
232+
client:=coderdtest.New(t,&coderdtest.Options{
233+
Database:db,
234+
Pubsub:pubsub,
235+
})
236+
owner:=coderdtest.CreateFirstUser(t,client)
237+
238+
ctx,cancel:=context.WithTimeout(context.Background(),testutil.WaitLong)
239+
defercancel()
240+
241+
token,err:=client.CreateAPIKey(ctx,owner.UserID.String())
242+
require.NoError(t,err)
243+
split:=strings.Split(token.Key,"-")
244+
apiKey1,err:=db.GetAPIKeyByID(ctx,split[0])
245+
require.NoError(t,err)
246+
require.Equal(t,int64(86400),apiKey1.LifetimeSeconds,"default should be 24 hours")
247+
248+
err=db.UpdateAPIKeyByID(ctx, database.UpdateAPIKeyByIDParams{
249+
ID:apiKey1.ID,
250+
LastUsed:apiKey1.LastUsed,
251+
// Cross the no-refresh threshold
252+
ExpiresAt:apiKey1.ExpiresAt.Add(time.Hour*-2),
253+
IPAddress:apiKey1.IPAddress,
254+
})
255+
require.NoError(t,err,"update login key")
256+
257+
// Refresh the token
258+
client.SetSessionToken(token.Key)
259+
_,err=client.User(ctx,codersdk.Me)
260+
require.NoError(t,err)
261+
262+
apiKey2,err:=client.APIKeyByID(ctx,owner.UserID.String(),split[0])
263+
require.NoError(t,err)
264+
require.True(t,apiKey2.ExpiresAt.After(apiKey1.ExpiresAt),"token should have a later expiry")
265+
}

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp