Using repeater to create login page


#1

I have created repeater with the following 2 columns:

  1. Username
  2. Password

This is a hidden repeater. I want that when a user logins, the entered username and password is verified using the values inside the repeaters rather then some static values. I have another page where a user (say admin) can add new users.

When i tried doing, the system does not allows me to create the flow that i require. I tested a similar application namely Just in Mind which gives a very powerful manipulation using Master data something similar to Repeaters. There the master data are centralized rather then of any one specific page. I was looking something similar in Axure considering it to be more mature. Please do let me know if anyone know if this is possible


#2

The only way in Axure to access data across pages–thus, a “centralized master data” set–is with global variables. Unfortunately, Axure’s global variables do not support arrays or “sheets” so you would need to create some means to set (build, create, edit) a “manual array” such as a hash scheme, as well as get data from this manual array.

If you are using the method from this Using JavaScript String Arrays in Axure thread (or similar), realize it only works on a single page. It is not transferrable across multiple pages–unless you create a means to transfer the repeater datasheet via global variables.

So, you could reconsider the design of your prototype to utilize only one true “page” in Axure, and “fake” your page changes by representing each page as a state in a dynamic panel.

Or, to support sharing this across multiple pages, you need a way to recreate your repeater (or list of usernames and passwords) using global variables. Here is one forum thread with a demonstration of how you can achieve this: How to pass/update repeater data in different pages.

However, you don’t need repeaters (especially “hidden” repeaters) for this approach. if you have a list of authorized usernames paired with passwords, you could use a single global variable to store them all, with individual entries separated by a hash character, and password values separated with a different hash character. Here, “hash” just refers to a delimiter used to indicate the beginning (or end) of an entry. Here is an example of 3 usernames with passwords, where each entry is separated with ‘#’ and the password within each entry is separated with ‘^’
#Bob Smith^abc123#Anna Johnson^45jkL6590smrT.1@4Y#John Jacob Jinglehimer-Schmidt^ismyname2

  • Of course, with this scheme, neither a username nor a password may contain the characters, ‘#’ or ‘^’
  • You can use one or multiple characters for your “hashes”, e.g., you could use ‘#USERNAME#’ and ‘#PW#’ as “delimiter strings”

To verify if a username is valid, you would search a global variable for the existence of your hash + the entered username, e.g., “#Bob Smith”. Then, to verify if the password for that username is valid, search for the next occurrence of ‘^’ and get the string value up to the next ‘#’ char.

To add or delete a username + password pair, you would just prepend your hashes to user-entered values.

Alternatively, you could use two global variables, e.g., userNameVar and passwordVar, along with a numbering scheme to indicate an “array position” to link a username with a password. For example,

  • userNameVar = (01)Bob Smith(02)Anna Johnson(03)John Jacob Jinglehimer-Schmidt
  • passwordVar = `(01)abc123(02)45jkL6590smrT.1@4Y(03)ismyname2``

So no, Axure is not very “mature” in this regard. Manually setting and getting data with manual hash strings is fairly complicated and painful, but you can leverage from good examples in this forum.