[add]ログインの処理を追加しました
1 parent 1a91448 commit 45e8fb49d7cd0764d5c0fbc9265bd9af7c1099e9
k-fujii authored on 14 May 2021
Showing 2 changed files
View
24
src/main/java/org/ntlab/acanthus_server/entities/Account.java
//後に記載する
// ////////////////////////////////////////////////////////////////////////////////////////
package org.ntlab.acanthus_server.entities;
 
import java.util.UUID;
 
public class Account {
private int uid;
private String name;
private String email;
this.email = email;
this.password = password;
}
 
//-----------------------------------------------------------------
//-----------------------------------------------------------------
//uidを返す
//GetとSetを実装
public int getUid() {
return uid;
}
 
//-----------------------------------------------------------------
public void setUid(int uid) {
this.uid = uid;
}
 
 
//-----------------------------------------------------------------
//tokenを返す
//GetとSetを実装
public String getToken() {
return token;
}
 
public void setToken(String token) {
this.token = token;
//-----------------------------------------------------------------
// トークンを生成する
public void createToken() {
this.token = UUID.randomUUID().toString();
}
 
//-----------------------------------------------------------------
//passwordをtoken認証後返す
public String getPassword(String token) {
//IFでトークン認証をしたのちに返す
return password;
}
 
//-----------------------------------------------------------------
//emailを返す
public String getEmail() {
return email;
}
 
//-----------------------------------------------------------------
public void setEmail(String email) {
this.email = email;
}
 
//Auth関数でpassword認証
//-----------------------------------------------------------------
// パスワードが一致しているかを判定
public boolean isMatchedPassword(String password) {
return this.password.equals(password);
}
 
View
11
src/main/java/org/ntlab/acanthus_server/resources/accounts/LoginRest.java
import org.springframework.stereotype.Component;
 
import javax.ws.rs.*;
import javax.ws.rs.core.MediaType;
import java.util.UUID;
 
@Component
@Path("/accounts/login")
public class LoginRest {
 
/**
* ログイン時のトークン認証
* アカウントが存在して, かつトークンを持っているかを確認する
*
*/
@GET
@Produces(MediaType.APPLICATION_JSON)
public boolean hasLoginToken(@QueryParam("uid") int uid, @QueryParam("token") String token) {
return true;
}
 
//-----------------------------------------------------------
 
/**
* ログイン時のトークン発行
* ログイン時, トークンをアカウントに発行させる
*
* @param email ユーザーの登録したメアド
* @param password パスワード
*/
@PUT
@Produces(MediaType.APPLICATION_JSON)
public String getLoginToken(@FormParam("e-mail") String email, @FormParam("password") String password) {
public void authenticateLoginToken(@FormParam("e-mail") String email, @FormParam("password") String password) {
 
var searchAccount = accounts.getAccountByEMail(email);
 
if (searchAccount == null) throw new WebApplicationException(404);
if (searchAccount.isMatchedPassword(password)) throw new WebApplicationException(401);
 
return UUID.randomUUID().toString();
searchAccount.createToken();
}
 
//-----------------------------------------------------------
 
}