Esto es en la parte superior del proyecto ApiTemplate original, añadir un módulo de control de acceso de inicio de sesión de usuario para proyecto de verificación ApiTemplate de cara a unas cuantas preguntas sencillas, cómo abstracta y para la futura expansión de soporte. módulo de control de acceso de inicio de sesión del usuario se ve muy simple, pero a causa de su tiempo libre es siempre limitado. Con esta oportunidad para que una vez que los usuarios ágiles prácticas de desarrollo. módulo de primera división, esto sólo implementar la conexión del usuario y de cierre de sesión.
Dirección de Proyectos apitemplate: https://github.com/cqhaibin/ApiTemplate
Un resumen puso delante
Minimizar mandato
- Esta tarea sólo se limita en el "nombre de usuario + contraseña" para esta tarea, y no contiene datos persistentes, de modo que cuando se hace repetidamente probarse a sí mismos, no fuera de rango. tan
- Consulta de la información de registro de usuario, interfaces de usuario en línea relacionados con el almacenamiento sólo para definir y ejecutar la simulación, no una aplicación específica de almacenamiento
- Teniendo en cuenta la lógica de negocio es estable, y el almacenamiento es variable, el objeto de entidad de base de datos y de separación de objetos de entidad de negocios
Para ordenar una fecha límite
Así se enumera solamente el plazo de la tarea, pero no aparece ningún límite de tiempo para cada sub-etapas, tales como: la demanda debe ir a través de un análisis de necesidades, diseño del módulo, las fases de ejecución de código. Estos sub-etapa también necesita dar un plazo determinado.
Desde el exterior a la capa interior para promover
- Definir UI / interfaces de capa de servicio
debido a la interfaz de la interfaz de usuario para proporcionar una variedad de formas (por ejemplo: api resto, RPC, etc.), de modo básico para el estándar de interfaz de capa de servicio, una capa de interfaz de usuario de interfaz acaba de hacer una conversión simple y llamada. En donde Moddel UI / servicio de entrada de la interfaz de capa / se definirá parámetros de salida (dos compartieron Model) - Aplicar la capa de servicio de interfaz de
este paso implementar la interfaz de capa de servicios, se encuentra la necesidad de confiar en el módulo de gestión de usuarios en línea, y la capa de base de datos (consultas registrada la información de usuario), donde sólo define la interfaz para consultar la información de registro de usuario, y temporalmente hacer una específica implementación. A continuación, introduzca el tercer paso - módulo de interfaz definido por el usuario en línea
en esta etapa incluyen: entidad de interfaz de gestión de usuarios en línea, la interfaz de usuario en línea entidad. Para no darse cuenta después de una buena definición. Mejorar el servicio implementaciones de la capa dependen de este llamado módulo, donde se puede ajustar en varias ocasiones la forma como los usuarios en línea módulos de parámetros de entrada / salida del modelo, con el fin de lograr la integración y servicios de la capa - módulo de interfaz de usuario en línea para lograr
este paso para la interfaz de usuario en línea para gestionar entidades, entidad de interfaz de usuario en línea. En este punto nos encontramos en línea también se basan en la interfaz de memoria de usuario (única definición, no lo haga de lograr)
En segundo lugar, las necesidades de los usuarios
De acuerdo con aplicar el nombre de usuario de inicio de sesión, la sesión de la interfaz.
En tercer lugar, el análisis de la demanda
- Nombre de usuario: Soporta Inglés, números, caracteres y caracteres especiales; los nombres de usuario no distinguen mayúsculas y minúsculas
- Contraseña: Soporta Inglés, números, caracteres especiales, mayúsculas y minúsculas
- Consejo: El usuario no existe y la contraseña es incorrecta para distinguir entre las puntas
- Esta etapa no tiene en cuenta la persistencia de los datos, ya que desea verificar rápidamente la viabilidad del prototipo
En cuarto lugar, el diseño de sistemas
Diseño de interfaz
Unificado de interfaz mediante una API resto, para lograr conexión, desconexión dos interfaces
- Iniciar sesión Interfaz
- Nombre de la interfaz: PostLogin
- Tipo de solicitud: Poste
- Los parámetros de entrada
{ El nombre de usuario < cadena >, // nombre de usuario contraseña < cadena > // contraseña }
- parámetros de respuesta
{ IsSuccess < BOOL >, // petición tiene éxito la resultCode <Número>, // Petición de Estado Código 200006: cuenta no existe; 200001: cuenta está deshabilitada; 200002: Error de contraseña de datos < Objeto > : { símbolo < cadena > // inicio de sesión después de un exitoso retorno al token el usuario < objeto >: { // objeto de usuario realname < cadena >, // nombre de usuario userName < cadena >, // Inicio nombre de la anteriormente mencionada ID < int >, // usuario Id config <String >, // información de extensión del usuario, JSON cadena móvil < string >, // número de teléfono } } }
- Interfaz de cierre de sesión
- Nombre de interfaz: loginout
- Tipo de solicitud: get
- Los parámetros de entrada
a través de URL, cabecera de la orden, símbolo adquisición de galletas - parámetros de respuesta
{ IsSuccess < BOOL >, // petición tiene éxito la resultCode <Número>, // Petición de Estado Código }
El diseño detallado
Diseño de interfaz de inicio de sesión se detalla
- proceso
- Gestión de usuarios en línea
- clase de interfaz de gestión de usuarios en línea
clase IOnlineUserMgr { /// <summary> /// añadir usuarios a la lista de usuarios, este método requiere información de acceso persistente /// </ resumen> /// <param name = "Entidad"> </ param> anular la Add (IUserEntity entidad); /// <summary> /// eliminar un usuario correspondiente de acuerdo con el token, este método requiere la persistencia información de cierre de sesión /// </ resumen> /// <param name = "token" > </ param> /// <Devuelve> </ Devoluciones> BOOL el remove ( cadena token); /// <summary> /// eliminar un usuario en función del usuario Id, este método requiere la persistencia información de cierre de sesión /// </ resumen> /// <param name = "id"> </ param> /// <Devoluciones> </ Devoluciones> BOOL Remove ( int ID); /// <summary> /// volver usuarios de la capa persistente /// </ resumen> anular la carga (); /// <summary> // / Obtener todos los usuarios /// </ resumen> IList <IUserEntity> GetAll (); IUserEntity get ( int el ID de usuario); }
- Usuario entidad clase de interfaz
clase IUserEntity { UserInfo de información del usuario { llegar ; } Cadena Token { get ; } /// <summary> /// 客户端信息 /// </ summary> RequestClientInfo ClientInfo { get ; } DateTime LoginTime { get ; } DateTime ExpiredTime { get ; } /// <summary> /// 用户登录配置 /// </ summary> Opción UserAuthOption { get ; } TokenEntity GetTokenEntity (); }
- explicación
- regla de generación de tokens
clave de usuario = token_UserId_UserName_IP_OS_Time, entonces el usuario token como un valor de clave calculado por MD5 - UAParser
lograr agente de usuario cadena para el objetivo de conversión.
- regla de generación de tokens
A cabo el diseño detallado de la interfaz
- proceso
En quinto lugar, el diccionario de datos
- Información de usuario en linea
- usuario