IP Library Granted Patent US 11,652,807
Granted Patent B2
US 11,652,807 · App. 17/128,990 · Granted May 16, 2023

Device validation apparatus and protocol for a group-based communication system

Inventors: Chase Rutherford-Jenkins (San Francisco, CA); Graham Hicks (Berkeley, CA); Lorilyn McCue (Pacifica, CA); Alireza Takhtravanchi (San Francisco, CA); Samuel Wolfand (San Francisco, CA); Faisal Yaqub (New York, NY)
Assignee: Salesforce, Inc.
H04L63/08H04L12/1818H04L51/42H04L67/306H04L51/18H04W4/12
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,652,807
App. No.
17/128,990
Granted
May 16, 2023
Kind
B2
Abstract

Provided is a computing device of a group based communication system configured to securely validate a client device associated with a group-based communication interface user. An example computing device is configured to identify a validating request transmitted from the client device. If a validating request is identified, the example computing device will transmit a temporary device code to the client device associated with the group-based communication interface user and an e-mail code to an e-mail address associated with a user profile associated with the group-based communication interface user. The example computing device also stores the codes transmitted. The example computing device then receives a confirmation exchange from the client device and determines whether the confirmation exchange satisfies client device validation parameters. If the confirmation exchange satisfies the client device validation parameters, the example computing device will validate the client device by transmitting and storing a long lived device code.

Claims (78)

1. A method comprising:

receiving user interaction data from a client device associated with a group-based communication platform;

identifying, based at least in part on the user interaction data, a first request associated with the client device of a user, wherein the first request comprises a validation request;

transmitting, to the client device, a first code that is valid for a first period of time;

transmitting, to the client device, a second code to confirm an identity of the user;

receiving, from the client device and based at least in part on the first code and the second code, a second request to determine whether the client device satisfies a validation parameter; and

in response to a determination that the client device satisfies the validation parameter, causing a third code, that is valid for a second period of time, to be stored on the client device to validate the client device for presenting a group-based communication interface via the group-based communication platform, wherein the second period of time is longer than the first period of time.

2. The method of claim 1 , wherein the first request comprises a device ID of the client device.

3. The method of claim 1 , further comprising:

receiving time stamp data associated with transmission of the first code; and

determining, based at least in part on a determination that a difference between the time stamp data and a system time is within the first period of time, that the client device satisfies the validation parameter.

4. The method of claim 1 , wherein the second code comprises an embedded link or a random code.

5. The method of claim 1 , wherein the user interaction data comprises first user interaction data, the method further comprising:

receiving second user interaction data from the client device;

identifying, from the second user interaction data, a third request to access group information related to a group associated with a user profile;

identifying, from the second user interaction data, the third code; and

transmitting, based at least in part on identifying the third request and the third code, the group information associated with the user profile.

6. The method of claim 1 , wherein the user interaction data comprises first user interaction data and further comprising:

receiving second user interaction data from the client device;

identifying, from the second user interaction data, a third request to modify group information associated with a user profile and the third code; and

modifying, based at least in part on identifying the third request and the third code, the group information associated with the user profile.

7. The method of claim 1 , wherein the second code is valid for a third period of time, the method further comprising:

receiving time stamp data associated with transmission of one of the first code or the second code; and

determining, based at least in part on a determination that a difference in time between the time stamp data and a system time is not within the first period of time or the third period of time, that the client device does not satisfy the validation parameter.

8. The method of claim 1 , wherein the user interaction data comprises first user interaction data, the method further comprising:

receiving second user interaction data from the client device;

identifying, from the second user interaction data, a third request to access information associated with at least one group associated with a user profile and the third code; and

generating, based at least in part on identifying the third request and the third code, an indicator that includes group information for display by the client device.

9. A system comprising:

one or more processors;

one or more non-transitory computer-readable media storing instructions executable by the one or more processors, wherein the instructions program the one or more processors to perform acts comprising:

receiving user interaction data from a client device associated with a group-based communication platform;

identifying, based at least in part on the user interaction data, a first request associated with the client device of a user, wherein the first request comprises a validation request;

transmitting, to the client device, a first code that is valid for a first period of time;

transmitting, to the client device, a second code to validate an identity of the user;

receiving, from the client device and based at least in part on the first code and the second code, a second request to determine whether the client device satisfies a validation parameter;

in response to a determination that the client device satisfies the validation parameter, causing a third code, that is valid for a second period of time, to be stored on the client device to validate the client device for presenting a group-based communication interface via the group-based communication platform, wherein the second period of time is longer than the first period of time.

10. The system of claim 9 , wherein the first request comprises a device ID of the client device.

11. The system of claim 9 , wherein the second code comprises an embedded link or a random code.

12. The system of claim 9 , further comprising:

receiving time stamp data associated with transmission of the first code; and

determining, based at least in part on a determination that a difference between the time stamp data and a system time is within the first period of time, that the client device satisfies the validation parameter.

13. The system of claim 9 , wherein the user interaction data comprises first user interaction data, and wherein the acts further comprise:

receiving second user interaction data from the client device;

identifying, from the second user interaction data, a third request to access information associated with at least one group associated with a user profile and the third code; and

generating, based at least in part on identifying the third request and the third code, an indicator that includes group information for display by the client device.

14. The system of claim 9 , wherein the user interaction data comprises first user interaction data, and wherein the acts further comprise:

receiving second user interaction data from the client device;

identifying, from the second user interaction data, a third request to access group information related to a group associated with a user profile;

identifying, from the second user interaction data, the third code; and

transmitting, based at least in part on identifying the third request and the third code, the group information associated with the user profile.

15. The system of claim 9 , wherein the second code is valid for a third period of time, and wherein the acts further comprise:

receiving time stamp data associated with transmission of one of the first code or the second code;

determining, based at least in part on a determination that a difference in time between the time stamp data and a system time is not within the first period of time or the third period of time, that the client device does not satisfy the validation parameter.

16. The system of claim 9 , wherein the user interaction data comprises first user interaction data, and wherein the acts further comprise:

receiving second user interaction data from the client device;

identifying, from the second user interaction data, a third request to modify group information associated with a user profile and the third code; and

modifying, based at least in part on identifying the third request and the third code, the group information associated with the user profile of the group-based communication interface.

17. One or more non-transitory computer-readable media storing computer-executable instructions that, when executed by one or more processors, cause the one or more processors to perform acts comprising:

receiving user interaction data from a client device associated with a group-based communication platform;

identifying, based at least in part on the user interaction data, a first request associated with the client device of a user, wherein the first request comprises a validation request;

transmitting, to the client device, a first code that is valid for a first period of time;

transmitting, to the client device, a second code to confirm an identity of the user;

receiving, from the client device and based at least in part on the first code and the second code, a second request to determine whether the client device satisfies a validation parameter; and

in response to a determination that the client device satisfies the validation parameter, causing a third code, that is valid for a second period of time, to be stored on the client device to validate the client device for presenting a group-based communication interface via the group-based communication platform, wherein the second period of time is longer than the first period of time.

18. The one or more non-transitory computer-readable media of claim 17 , wherein the user interaction data comprises first user interaction data, the acts further comprising:

receiving second user interaction data from the client device;

identifying, from the second user interaction data, a third request to access information associated with at least one group associated with a user profile and the third code; and

generating, based at least in part on identifying the third request and the third code, an indicator that includes group information for display by the client device.

19. The one or more non-transitory computer-readable media of claim 17 , wherein the user interaction data comprises first user interaction data, the acts further comprising:

receiving second user interaction data from the client device;

identifying, from the second user interaction data, a third request to access group information related to a group associated with a user profile;

identifying, from the second user interaction data, the third code; and

transmitting, based at least in part on identifying the third request and the third code, the group information associated with the user profile.

20. The one or more non-transitory computer-readable media of claim 17 , wherein the user interaction data comprises first user interaction data, the acts further comprising:

receiving second user interaction data from the client device;

identifying, from the second user interaction data, a third request to modify group information associated with a user profile and the third code; and

modifying, based at least in part on identifying the third request and the third code, the group information associated with the user profile of the group-based communication interface.

Assignments (4)
MERGER Recorded Nov 21, 2022
From: SLACK TECHNOLOGIES, LLC
To: SALESFORCE.COM, INC.
Reel/Frame 061972/0569 →
CHANGE OF NAME Recorded Nov 21, 2022
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 061972/0769 →
MERGER AND CHANGE OF NAME Recorded Oct 1, 2021
From: SLACK TECHNOLOGIES, INC.; SLACK TECHNOLOGIES, LLC
To: SLACK TECHNOLOGIES, LLC
Reel/Frame 057683/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 21, 2020
From: RUTHERFORD-JENKINS, CHASE; HICKS, GRAHAM; MCCUE, LORILYN; TAKHTRAVANCHI, ALIREZA; WOLFAND, SAMUEL; YAQUB, FAISAL
To: SLACK TECHNOLOGIES, INC.
Reel/Frame 054711/0394 →