✨ New login alert
This commit is contained in:
		
							
								
								
									
										3
									
								
								.idea/workspace.xml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										3
									
								
								.idea/workspace.xml
									
									
									
										generated
									
									
									
								
							@@ -5,7 +5,8 @@
 | 
			
		||||
  </component>
 | 
			
		||||
  <component name="ChangeListManager">
 | 
			
		||||
    <list default="true" id="3fefb2c4-b6f9-466b-a523-53352e8d6f95" name="更改" comment=":sparkles: More event logs point">
 | 
			
		||||
      <change beforePath="$PROJECT_DIR$/pkg/internal/server/api/sign_api.go" beforeDir="false" afterPath="$PROJECT_DIR$/pkg/internal/server/api/sign_api.go" afterDir="false" />
 | 
			
		||||
      <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
 | 
			
		||||
      <change beforePath="$PROJECT_DIR$/pkg/internal/services/ticket.go" beforeDir="false" afterPath="$PROJECT_DIR$/pkg/internal/services/ticket.go" afterDir="false" />
 | 
			
		||||
    </list>
 | 
			
		||||
    <option name="SHOW_DIALOG" value="false" />
 | 
			
		||||
    <option name="HIGHLIGHT_CONFLICTS" value="true" />
 | 
			
		||||
 
 | 
			
		||||
@@ -2,6 +2,7 @@ package services
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"gorm.io/datatypes"
 | 
			
		||||
	"time"
 | 
			
		||||
 | 
			
		||||
	"github.com/rs/zerolog/log"
 | 
			
		||||
@@ -124,6 +125,20 @@ func ActiveTicket(ticket models.AuthTicket) (models.AuthTicket, error) {
 | 
			
		||||
 | 
			
		||||
	if err := database.C.Save(&ticket).Error; err != nil {
 | 
			
		||||
		return ticket, err
 | 
			
		||||
	} else {
 | 
			
		||||
		_ = NewNotification(models.Notification{
 | 
			
		||||
			Topic:    "passport.security.alert",
 | 
			
		||||
			Title:    "New sign in alert",
 | 
			
		||||
			Subtitle: lo.ToPtr(fmt.Sprintf("New sign in from %s", ticket.IpAddress)),
 | 
			
		||||
			Body:     fmt.Sprintf("Your account just got a new sign in from %s. Make sure you recongize this device, or sign out it immediately and reset password.", ticket.IpAddress),
 | 
			
		||||
			Metadata: datatypes.JSONMap{
 | 
			
		||||
				"ip_address":   ticket.IpAddress,
 | 
			
		||||
				"created_at":   ticket.CreatedAt,
 | 
			
		||||
				"available_at": ticket.AvailableAt,
 | 
			
		||||
			},
 | 
			
		||||
			AccountID:   ticket.AccountID,
 | 
			
		||||
			IsForcePush: true,
 | 
			
		||||
		})
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return ticket, nil
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user