package com.onboard.frontend.service.account; import java.util.Map; import com.onboard.frontend.controller.page.account.form.ForgetPasswordForm; import com.onboard.frontend.controller.page.account.form.RegistrationForm; import com.onboard.frontend.controller.page.account.form.ResetPasswordForm; import com.onboard.frontend.controller.page.account.form.ThirdPartRegistrationForm; import com.onboard.frontend.model.User; /** * Created by XingLiang on 2015/4/23. */ public interface AccountService { String AUTHENTICATE_USER = "/signin"; String GET_USER_BY_ID = "/users/%d"; String GET_USER_BY_EMAIL = "/users?email-or-username=%s"; String FORGET_PASSWORD = "/account-forget"; String RESET_PASSWORD = "/account-reset/%d/token/%s"; String ACCOUNT_CONFIRM = "/account-confirm/%d/token/%s"; String SIGN_UP = "/signup"; String THIRD_PART_SIGN_UP = "/signup/github/callback?code=%s"; String THIRD_PART_SIGN_IN = "/signin/github/callback?code=%s"; String THIRD_PART_SIGN_UP_POST = "/signup/github?id=%s"; String AUTHENTICATE_USER_WITH_THIRDPART_USER = "/signin?thirdpartUserId=%s"; /** * 通过id获取用户 * * @param id * @return */ User getUserById(int id); /** * 根据用户邮箱或用户名获取用户 * * @param email * @return */ User getUserByEmailOrUsername(String emailOrUsername); /** * 验证用户身份, 如成功返回用户详细信息 * * @param user * @return */ User authenticateUser(User user); /** * 获取remember me功能的token * * @param uid * @return * @throws Exception */ String getRememberMeToken(int uid); /** * 验证remeberMe功能的token,如果成功则返回用户对象 * * @param token * @return user * @throws Exception */ User authenticateRememberMeToken(int uid, String token); /** * 删除RememberMe Token,用于用户登出 * * @param uid */ void deleteRememberMeToken(int uid); /** * 验证忘记密码功能的token * * @param token * @return * @throws Exception */ boolean authenticateForgetToken(int uid, String token); /** * 忘记密码 * * @param email */ boolean forgetPassword(ForgetPasswordForm forgetPasswordForm); /** * 重置密码 * * @param password * @param token */ boolean resetPassword(int uid, String token, ResetPasswordForm resetPasswordForm); /** * 确认用户注册信息 * * @param token */ boolean confirmRegisteredUser(int uid, String token); /** * 注册用户 * * @param registrationForm * @return */ boolean signup(RegistrationForm registrationForm); User thirdPartAuthenticateUser(String code); Map<String, String> thirdPartSignupCallback(String code); boolean thirdPartSignup(ThirdPartRegistrationForm thirdPartRegistrationForm, Integer id); User authenticateUserAndBandTheThirdpardUser(User user, int thirdpartUserId); }