Updated frontend user auth service

Now, instead of using Brood, it uses the Moonstream API.
pull/37/head
Neeraj Kashyap 2021-07-31 10:35:58 -07:00
rodzic 7aff3f4159
commit 1ced909f15
9 zmienionych plików z 40 dodań i 82 usunięć

Wyświetl plik

@ -56,8 +56,8 @@ whitelist_paths.update(
{
"/users": "POST",
"/users/token": "POST",
"/users/password/restore": "POST",
"/users/password/reset": "POST",
"/users/password/reset_initiate": "POST",
"/users/password/reset_complete": "POST",
}
)
app.add_middleware(BroodAuthMiddleware, whitelist=whitelist_paths)
@ -87,11 +87,10 @@ async def get_user_handler(request: Request) -> BugoutUser:
return user
@app.post("/password/restore", tags=["users"], response_model=Dict[str, Any])
async def restore_password_handler(request: Request) -> Dict[str, Any]:
user = request.state.user
@app.post("/password/reset_initiate", tags=["users"], response_model=Dict[str, Any])
async def restore_password_handler(email: str = Form(...)) -> Dict[str, Any]:
try:
response = bc.restore_password(email=user.email)
response = bc.restore_password(email=email)
except BugoutResponseException as e:
raise HTTPException(status_code=e.status_code, detail=e.detail)
except Exception as e:
@ -99,7 +98,7 @@ async def restore_password_handler(request: Request) -> Dict[str, Any]:
return response
@app.post("/password/reset", tags=["users"], response_model=BugoutUser)
@app.post("/password/reset_complete", tags=["users"], response_model=BugoutUser)
async def reset_password_handler(
reset_id: str = Form(...), new_password: str = Form(...)
) -> BugoutUser:

Wyświetl plik

@ -1,9 +1,3 @@
export NEXT_PUBLIC_SIMIOTICS_SEARCH_URL=http://localhost:5000
export NEXT_PUBLIC_MIXPANEL_TOKEN="<YOUR MIXPANEL TOKEN HERE>"
export NEXT_PUBLIC_SIMIOTICS_AUTH_URL=http://localhost:7474
export NEXT_PUBLIC_SIMIOTICS_JOURNALS_URL=http://localhost:7475
export NEXT_PUBLIC_BUGOUT_CONTACTUS_TOKEN="<Brood token for contact user>"
export NEXT_PUBLIC_BUGOUT_CONTACTUS_JOURNAL_ID="<journal ID for contact journal>"
export NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY="<stripe publishable key>"
export NEXT_PUBLIC_MOONSTREAM_API_URL=http://localhost:7481
export NEXT_PUBLIC_MOONSTREAM_API_URL=http://localhost:7481

Wyświetl plik

@ -28,7 +28,7 @@ const useLogin = (loginType) => {
if (!data) {
return;
}
localStorage.setItem("BUGOUT_ACCESS_TOKEN", data.data.access_token);
localStorage.setItem("MOONSTREAM_ACCESS_TOKEN", data.data.access_token);
const invite_code = window.sessionStorage.getItem("invite_code");
if (invite_code) {
inviteAccept(invite_code);

Wyświetl plik

@ -34,7 +34,7 @@ const useLogout = () => {
return;
}
localStorage.removeItem("BUGOUT_ACCESS_TOKEN");
localStorage.removeItem("MOONSTREAM_ACCESS_TOKEN");
cache.clear();
}, [data, cache]);

Wyświetl plik

@ -18,7 +18,7 @@ const useSignUp = (source) => {
isSuccess
} = useMutation(AuthService.register(), {
onSuccess: (response) => {
localStorage.setItem("BUGOUT_ACCESS_TOKEN", response.data.access_token);
localStorage.setItem("MOONSTREAM_ACCESS_TOKEN", response.data.access_token);
const invite_code = window.sessionStorage.getItem("invite_code");
if (invite_code) {
inviteAccept(invite_code);

Wyświetl plik

@ -8,7 +8,7 @@ const UserProvider = ({ children }) => {
const [isInit, setInit] = useState(false);
const getUser = useCallback(() => {
const token = localStorage.getItem("BUGOUT_ACCESS_TOKEN");
const token = localStorage.getItem("MOONSTREAM_ACCESS_TOKEN");
if (!token) {
setInit(true);
return setUser(null);

Wyświetl plik

@ -1,9 +1,9 @@
import { http } from "../utils";
const AUTH_URL = process.env.NEXT_PUBLIC_SIMIOTICS_AUTH_URL;
const API_URL = process.env.NEXT_PUBLIC_MOONSTREAM_API_URL;
const AUTH_URL = `${API_URL}/users`;
export const login = ({ username, password }) => {
console.log('login',username, password)
const data = new FormData();
data.append("username", username);
data.append("password", password);
@ -17,66 +17,38 @@ export const login = ({ username, password }) => {
export const revoke = () => {
return http({
method: "POST",
url: `${AUTH_URL}/revoke/${localStorage.getItem("BUGOUT_ACCESS_TOKEN")}`,
});
};
export const register = () => ({ username, email, password }) => {
const data = new FormData();
data.append("username", username);
data.append("email", email);
data.append("password", password);
return http({
method: "POST",
url: `${AUTH_URL}/user`,
data,
}).then(() =>
http({
method: "POST",
url: `${AUTH_URL}/token`,
data,
})
);
};
export const verify = ({ code }) => {
const data = new FormData();
data.append("verification_code", code);
return http({
method: "POST",
url: `${AUTH_URL}/confirm`,
data,
});
};
export const getTokenList = () => {
const data = new FormData();
return http({
method: "GET",
url: `${AUTH_URL}/tokens`,
data,
});
};
export const updateToken = ({ note, token }) => {
const data = new FormData();
data.append("token_note", note);
data.append("access_token", token);
return http({
method: "PUT",
method: "DELETE",
url: `${AUTH_URL}/token`,
data,
});
};
export const register =
() =>
({ username, email, password }) => {
const data = new FormData();
data.append("username", username);
data.append("email", email);
data.append("password", password);
return http({
method: "POST",
url: `${AUTH_URL}/`,
data,
}).then(() =>
http({
method: "POST",
url: `${AUTH_URL}/token`,
data,
})
);
};
export const forgotPassword = ({ email }) => {
const data = new FormData();
data.append("email", email);
return http({
method: "POST",
url: `${AUTH_URL}/reset`,
url: `${AUTH_URL}/password/reset_initiate`,
data,
});
};
@ -87,18 +59,11 @@ export const resetPassword = ({ newPassword, resetId }) => {
data.append("new_password", newPassword);
return http({
method: "POST",
url: `${AUTH_URL}/password/reset`,
url: `${AUTH_URL}/password/reset_complete`,
data,
});
};
export const revokeToken = (token) => {
return http({
method: "POST",
url: `${AUTH_URL}/revoke/${token}`,
});
};
export const changePassword = ({ currentPassword, newPassword }) => {
const data = new FormData();
data.append("current_password", currentPassword);

Wyświetl plik

@ -22,9 +22,9 @@ export const getResultsByEndpoint = async (query, endpoint, clientID) => {
// myself, I would have to implement the logic to handle multiple origins (since the
// Access-Control-Allow-Origins only takes one origin).
// At that point, uncomment the following:
// const token = localStorage.getItem('BUGOUT_ACCESS_TOKEN')
// const token = localStorage.getItem('MOONSTREAM_ACCESS_TOKEN')
// if (token) {
// headers.Authorization = `Bearer ${localStorage.getItem('BUGOUT_ACCESS_TOKEN')}`
// headers.Authorization = `Bearer ${localStorage.getItem('MOONSTREAM_ACCESS_TOKEN')}`
// }
const response = await fetch(requestURL, { method, headers });

Wyświetl plik

@ -4,7 +4,7 @@ let axios = require("axios");
enableMockupRequests(axios);
const http = (config) => {
const token = localStorage.getItem("BUGOUT_ACCESS_TOKEN");
const token = localStorage.getItem("MOONSTREAM_ACCESS_TOKEN");
const authorization = token ? { Authorization: `Bearer ${token}` } : {};
const defaultHeaders = config.headers ?? {};
const options = {