mirror of
https://github.com/matrix-org/dendrite.git
synced 2025-12-12 09:23:09 -06:00
Generate new devices for each new /login
This commit is contained in:
parent
41e11dad5d
commit
aa36166766
|
|
@ -86,6 +86,18 @@ func GenerateAccessToken() (string, error) {
|
|||
return base64.RawURLEncoding.EncodeToString(b), nil
|
||||
}
|
||||
|
||||
// GenerateDeviceID creates a new device id. Returns an error if failed to generate
|
||||
// random bytes.
|
||||
func GenerateDeviceID() (string, error) {
|
||||
b := make([]byte, tokenByteLength)
|
||||
_, err := rand.Read(b)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
// url-safe no padding
|
||||
return base64.RawURLEncoding.EncodeToString(b), nil
|
||||
}
|
||||
|
||||
// extractAccessToken from a request, or return an error detailing what went wrong. The
|
||||
// error message MUST be human-readable and comprehensible to the client.
|
||||
func extractAccessToken(req *http.Request) (string, error) {
|
||||
|
|
|
|||
|
|
@ -113,15 +113,17 @@ func Login(
|
|||
|
||||
token, err := auth.GenerateAccessToken()
|
||||
if err != nil {
|
||||
return util.JSONResponse{
|
||||
Code: 500,
|
||||
JSON: jsonerror.Unknown("Failed to generate access token"),
|
||||
httputil.LogThenError(req, err)
|
||||
}
|
||||
|
||||
deviceID, err := auth.GenerateDeviceID()
|
||||
if err != nil {
|
||||
httputil.LogThenError(req, err)
|
||||
}
|
||||
|
||||
// TODO: Use the device ID in the request
|
||||
dev, err := deviceDB.CreateDevice(
|
||||
req.Context(), acc.Localpart, auth.UnknownDeviceID, token,
|
||||
req.Context(), acc.Localpart, deviceID, token,
|
||||
)
|
||||
if err != nil {
|
||||
return util.JSONResponse{
|
||||
|
|
|
|||
Loading…
Reference in a new issue