fix passkey
This commit is contained in:
@@ -115,7 +115,7 @@ const copyUrl = async () => {
|
|||||||
|
|
||||||
const star = ref(0);
|
const star = ref(0);
|
||||||
const getGithubStars = async () => {
|
const getGithubStars = async () => {
|
||||||
const res = await fetch('https://ungh.cc/repos/mirrors2/opencatd-open', { next: { revalidate: 3600 } });
|
const res = await fetch('https://ungh.cc/repos/mirrors2/openteam', { next: { revalidate: 3600 } });
|
||||||
const data = await res.json();
|
const data = await res.json();
|
||||||
return data.repo.stars;
|
return data.repo.stars;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -71,6 +71,15 @@ func (a Api) ListApiKey(c *gin.Context) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
dto.Fail(c, 500, err.Error())
|
dto.Fail(c, 500, err.Error())
|
||||||
} else {
|
} else {
|
||||||
|
for _, key := range keys {
|
||||||
|
str := *key.ApiKey
|
||||||
|
slen := len(str)
|
||||||
|
if slen > 20 {
|
||||||
|
slen = 20
|
||||||
|
}
|
||||||
|
str = str[:slen]
|
||||||
|
key.ApiKey = &str
|
||||||
|
}
|
||||||
dto.Success(c, gin.H{
|
dto.Success(c, gin.H{
|
||||||
"total": total,
|
"total": total,
|
||||||
"keys": keys,
|
"keys": keys,
|
||||||
|
|||||||
@@ -272,11 +272,22 @@ func (s *WebAuthnService) FinishLogin(challenge string, response *http.Request)
|
|||||||
// return nil, err
|
// return nil, err
|
||||||
// }
|
// }
|
||||||
var user *WebAuthnUser
|
var user *WebAuthnUser
|
||||||
_, err = s.WebAuthn.FinishDiscoverableLogin(s.GetWebAuthnUser(&user), *sessionData, response)
|
wc, err := s.WebAuthn.FinishDiscoverableLogin(s.GetWebAuthnUser(&user), *sessionData, response)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
// 更新Passkey的LastUsedAt
|
// 更新Passkey 这里SignCount应该是由验证器上传,但可能为0,手动+1
|
||||||
|
var pk model.Passkey
|
||||||
|
if err := s.DB.Model(&model.Passkey{}).Where("credential_id = ?", base64.StdEncoding.EncodeToString(wc.ID)).First(&pk).Error; err == nil {
|
||||||
|
if err := s.DB.Model(&model.Passkey{}).Where("id = ?", pk.ID, time.Now().Unix()).Updates(map[string]interface{}{
|
||||||
|
"sign_count": pk.SignCount + 1,
|
||||||
|
"last_used_at": time.Now().Unix(),
|
||||||
|
}).Error; err != nil {
|
||||||
|
fmt.Println(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
return user, nil
|
return user, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
// https://docs.anthropic.com/en/docs/about-claude/models/all-models
|
||||||
package claude
|
package claude
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
// https://github.com/google-gemini/api-examples/
|
// https://github.com/google-gemini/api-examples/
|
||||||
|
// https://ai.google.dev/gemini-api/docs/models?hl=zh-cn
|
||||||
|
|
||||||
package google
|
package google
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user