kopia lustrzana https://github.com/bugout-dev/moonstream
Updated frontend user auth service
Now, instead of using Brood, it uses the Moonstream API.pull/37/head
rodzic
7aff3f4159
commit
1ced909f15
|
@ -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:
|
||||
|
|
|
@ -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
|
|
@ -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);
|
||||
|
|
|
@ -34,7 +34,7 @@ const useLogout = () => {
|
|||
return;
|
||||
}
|
||||
|
||||
localStorage.removeItem("BUGOUT_ACCESS_TOKEN");
|
||||
localStorage.removeItem("MOONSTREAM_ACCESS_TOKEN");
|
||||
cache.clear();
|
||||
}, [data, cache]);
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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 });
|
||||
|
|
|
@ -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 = {
|
||||
|
|
Ładowanie…
Reference in New Issue