Expand my Community achievements bar.

Radically easy to access on brand approved content for distribution and omnichannel performant delivery. AEM Assets Content Hub and Dynamic Media with OpenAPI capabilities is now GA.

Duplicate screenNames with Tokens

Avatar

Level 3

My app uses tokens to pre-authorize hosts and participants for rooms. Audience members just login using the username and password in the authenticator.

The name of the first person to login using a token is used for every additional user who logs in with a token. It doesn't matter what role they play. I can have Host login first or a participant. I've verified that the screenName passed to the getAuthenticationToken for each user is right and that the tokens are different and the proper token is being passed to the service on login... What am I missing? The audience screenNames are proper, so it seems to be related to the Tokens.

Help!!

John

8 Replies

Avatar

Employee

What language do you use server-side ? Also, can you send the debug messages from your client ? that should help figuring out your problem.

BTW, I am not sure I understand this " Audience members just login using the username and password in the authenticator.". Do all your audience members have an AdobeID ? Just curious.

Avatar

Level 3

php.

The client doesn't throw an error. It just makes all the screen names the same except the addition numbers added for subsequent logins. So I'm not sure what you mean by debug message.

Here's how my app decides how to authenticate you. tokens are retrieved for hosts and participant prior to this.

if ( myToken != "" )

{

_view.connectSession.authenticator.authenticationKey = myToken;

}else{

_view.connectSession.authenticator.userName = settings.user.firstName" "settings.user.lastName;

_view.connectSession.authenticator.password = null;

}

_view.connectSession.login();

None of my audience members have adobeID's.

John

Avatar

Employee

Again, I need the debug logs to figure out what's going on, even if you don't get any error. Can you run your application in Flex/FlashBuilder debug mode and send me the debug messages ?

Avatar

Level 3

Oh ok sure. I didn't get what you meant by debug messages.

Here's the Hosts trail:

Thu Dec 16 16:26:04 GMT-0800 2010 LCCS SDK Version : 1.3.5 Player Version : MAC 10,1,102,64

16:26:04 GMT-0800 requestInfo https://collaboration.adobelivecycle.com/cleverspring/ratioTest-20101212-134001?exx=eDpSdXNzIEV4ZWN1...

Warning: Domain collaboration.adobelivecycle.com does not specify a meta-policy. Applying default meta-policy 'master-only'. This configuration is deprecated. See http://www.adobe.com/go/strict_policy_files to fix this problem.

16:26:05 GMT-0800 #TicketService# ticket received: t3xg8ym32yzk

16:26:05 GMT-0800 Getting FMS at https://na2.collaboration.adobelivecycle.com/fms?ticket=t3xg8ym32yzk&proto=rtmfp, attempt #1/3

16:26:05 GMT-0800 result:

16:26:05 GMT-0800 protocols: ,[object ProtocolPortPair]

16:26:05 GMT-0800 Connecting to 0/1: rtmfp://fms4.acrobat.com/cocomo/na2-sdk-e4fa0e5d-5e31-4bdf-aa3c-70caee70530e/ratiotest-20101212-134001 #startProtosConnect#

16:26:06 GMT-0800 tempNetStatusHandler 0/2,NetConnection.Connect.Success

16:26:06 GMT-0800 isTunneling? false

16:26:06 GMT-0800 is using RTMPS? false

16:26:06 GMT-0800 RECEIVED LOGIN AT SESSION

16:26:06 GMT-0800 .user descriptor from server

16:26:06 GMT-0800

16:26:06 GMT-0800 .userID = EXT-CLEVERSPRING-TRAINME

16:26:06 GMT-0800 .role = 100

16:26:06 GMT-0800 .affiliation = 100

16:26:06 GMT-0800 .displayName = Russ Executive

16:26:06 GMT-0800 RECEIVENODES UserManager

16:26:06 GMT-0800 receiveAllSynchData UserManager

16:26:06 GMT-0800 RECEIVENODES FileManager

16:26:06 GMT-0800 receiveAllSynchData FileManager

16:26:06 GMT-0800 checkManagerSync:[object FileManager]

16:26:06 GMT-0800 RECEIVENODES AVManager

16:26:06 GMT-0800 receiveAllSynchData AVManager

16:26:06 GMT-0800 checkManagerSync:[object StreamManager]

16:26:06 GMT-0800 RECEIVENODES RoomManager

16:26:06 GMT-0800 receiveAllSynchData RoomManager

16:26:06 GMT-0800 checkManagerSync:[object RoomManager]

16:26:06 GMT-0800 checkManagerSync:[object UserManager]

repeatEnd

16:26:07 GMT-0800 RECEIVENODES QA_Model

16:26:07 GMT-0800 receiveAllSynchData QA_Model

16:26:07 GMT-0800 RECEIVENODES Course_Viewer_Model

16:26:07 GMT-0800 RECEIVENODES User_Model

16:26:07 GMT-0800 receiveAllSynchData User_Model

16:26:07 GMT-0800 RECEIVENODES Ball_Model

16:26:07 GMT-0800 receiveAllSynchData Ball_Model

16:26:07 GMT-0800 RECEIVENODES Users_Publishing_Camera_Node

16:26:07 GMT-0800 receiveAllSynchData Users_Publishing_Camera_Node

16:26:07 GMT-0800 RECEIVENODES SharedCursorsCollection_

16:26:07 GMT-0800 receiveAllSynchData SharedCursorsCollection_

16:26:07 GMT-0800 RECEIVENODES User_Model

16:26:07 GMT-0800 receiveAllSynchData User_Model

16:26:07 GMT-0800 RECEIVENODES Ball_Model

16:26:07 GMT-0800 receiveAllSynchData Ball_Model

16:26:07 GMT-0800 RECEIVENODES Users_Publishing_Camera_Node

16:26:07 GMT-0800 receiveAllSynchData Users_Publishing_Camera_Node

here's the participants trail

Thu Dec 16 16:28:31 GMT-0800 2010 LCCS SDK Version : 1.3.5 Player Version : MAC 10,1,102,64

16:28:31 GMT-0800 requestInfo https://collaboration.adobelivecycle.com/cleverspring/ratioTest-20101212-134001?exx=eDpSdXNzIE1hbmFn...

Warning: Domain collaboration.adobelivecycle.com does not specify a meta-policy. Applying default meta-policy 'master-only'. This configuration is deprecated. See http://www.adobe.com/go/strict_policy_files to fix this problem.

16:28:32 GMT-0800 #TicketService# ticket received: 1cjh5wiil4us4

16:28:32 GMT-0800 Getting FMS at https://na2.collaboration.adobelivecycle.com/fms?ticket=1cjh5wiil4us4&proto=rtmfp, attempt #1/3

16:28:32 GMT-0800 result:

16:28:32 GMT-0800 protocols: ,[object ProtocolPortPair]

16:28:32 GMT-0800 Connecting to 0/1: rtmfp://fms4.acrobat.com/cocomo/na2-sdk-e4fa0e5d-5e31-4bdf-aa3c-70caee70530e/ratiotest-20101212-134001 #startProtosConnect#

16:28:32 GMT-0800 tempNetStatusHandler 0/2,NetConnection.Connect.Success

16:28:32 GMT-0800 isTunneling? false

16:28:32 GMT-0800 is using RTMPS? false

16:28:33 GMT-0800 RECEIVED LOGIN AT SESSION

16:28:33 GMT-0800 .user descriptor from server

16:28:33 GMT-0800

16:28:33 GMT-0800 .userID = EXT-CLEVERSPRING-TRAINME

16:28:33 GMT-0800 .role = 50

16:28:33 GMT-0800 .affiliation = 50

16:28:33 GMT-0800 .displayName = Russ Manager

16:28:33 GMT-0800 RECEIVENODES UserManager

16:28:33 GMT-0800 receiveAllSynchData UserManager

16:28:33 GMT-0800 RECEIVENODES FileManager

16:28:33 GMT-0800 receiveAllSynchData FileManager

16:28:33 GMT-0800 checkManagerSync:[object FileManager]

16:28:33 GMT-0800 RECEIVENODES AVManager

16:28:33 GMT-0800 receiveAllSynchData AVManager

16:28:33 GMT-0800 checkManagerSync:[object StreamManager]

16:28:33 GMT-0800 RECEIVENODES RoomManager

16:28:33 GMT-0800 receiveAllSynchData RoomManager

16:28:33 GMT-0800 checkManagerSync:[object RoomManager]

16:28:33 GMT-0800 checkManagerSync:[object UserManager]

repeatEnd

16:28:33 GMT-0800 RECEIVENODES QA_Model

16:28:33 GMT-0800 receiveAllSynchData QA_Model

16:28:33 GMT-0800 RECEIVENODES Course_Viewer_Model

16:28:34 GMT-0800 RECEIVENODES User_Model

16:28:34 GMT-0800 receiveAllSynchData User_Model

16:28:34 GMT-0800 RECEIVENODES Ball_Model

16:28:34 GMT-0800 receiveAllSynchData Ball_Model

16:28:34 GMT-0800 RECEIVENODES Users_Publishing_Camera_Node

16:28:34 GMT-0800 receiveAllSynchData Users_Publishing_Camera_Node

16:28:34 GMT-0800 RECEIVENODES SharedCursorsCollection_

16:28:34 GMT-0800 receiveAllSynchData SharedCursorsCollection_

16:28:34 GMT-0800 RECEIVENODES User_Model

16:28:34 GMT-0800 receiveAllSynchData User_Model

16:28:34 GMT-0800 RECEIVENODES Ball_Model

16:28:34 GMT-0800 receiveAllSynchData Ball_Model

16:28:34 GMT-0800 RECEIVENODES Users_Publishing_Camera_Node

16:28:34 GMT-0800 receiveAllSynchData Users_Publishing_Camera_Node

thanks,

John

Avatar

Employee

You are using the same "unique user ID" for both host and participant (the TRAINME in EXT-CLEVERSPRING-TRAINME) so when the two users login they actually become the same users in LCCS (and either the second one override the first or it gets ignored).

You need to use different user IDs when you create the authentication token. Assuming those users login into your system first (and you do have a unique id for them) you should use that value for LCCS too (or if you don't trust us and you are 100% sure that users have all unique names you could use an hash of their displayName)

Avatar

Level 3

Raf,

Thanks for you quick response. I guess I'm unclear on what your saying again. Here's the php that's getting the token.

/**

  • Gets an Adobe token for a user/role from the AFCS service.

*

  • @param string $screenName Name this user will display as.

  • @param string $password Password this user will use.

  • @param string $livePermission The user's role integer.

  • @return string Contains token on success.

*/

public function getToken($roomName, $screenName, $password, $livePermission) {

$session = $account->getSession($roomName);

$token = $session->getAuthenticationToken($secret, $screenName, $password, $livePermission);

return $token;

}

I don't see a user ID. We do have unique ids for each user, but I"m not sure how to deliver this to the service.

John

Avatar

Employee

This is the definition of getAuthentication token (from lccs.php) :

    /**

     * get an external authentication token

     */

    function getAuthenticationToken($accountSecret, $name, $id, $role)

This is the javadoc (same interface) :

        /**

         * Get an external authentication token for a user

         *

         * @param accountSecret account secret (from DevPortal)

         * @param name user name

         * @param id user ID

         * @param role user role

         * @return external authentication token as HTTP request parameter

         * @throws Exception

         * @see UserRoles

         */

I am not sure of where you got that you need to pass the user password to LCCS. Again, in your logs it shows that both users have a userID (or password in your case) of "TRAINME".

You need to pass your unique ID as the "$id" parameter of getAuthenticationToken.

Avatar

Level 3

Raf,

Thanks not sure what happened my backend guy must have gotten confused. Thanks for clearing it up.

John