def get_token(user, pwd, expires_in=3600, expire_on=None, device=None): """ Get the JWT Token :param user: The user in ctx :param pwd: Pwd to auth :param expires_in: number of seconds till expiry :param expire_on: yyyy-mm-dd HH:mm:ss to specify the expiry (deprecated) :param device: The device in ctx """ if not frappe.db.exists("User", user): raise frappe.ValidationError(_("Invalide User")) from frappe.sessions import clear_sessions login = LoginManager() login.check_if_enabled(user) if not check_password(user, pwd): login.fail('Incorrect password', user=user) login.login_as(user) login.resume = False login.run_trigger('on_session_creation') _expires_in = 3600 if cint(expires_in): _expires_in = cint(expires_in) elif expire_on: _expires_in = (get_datetime(expire_on) - get_datetime()).total_seconds() token = get_bearer_token(user=user, expires_in=_expires_in) frappe.local.response["token"] = token["access_token"] frappe.local.response.update(token)
def pin_login(user, pin, device=None): """ Login using the user's email and the quick login pin :param user: The active user :param pin: The quick login pin :param device: Clear all sessions of device """ from frappe.sessions import clear_sessions login = LoginManager() if not frappe.cache().get_value( f'can_use_quick_login_pin', user=user, expires=True): login.fail('Quick Login PIN time expired', user=user) login.check_if_enabled(user) if not check_password( user, pin, doctype='User', fieldname='quick_login_pin'): login.fail('Incorrect password', user=user) login.login_as(user) login.resume = False login.run_trigger('on_session_creation') if device: clear_sessions(user, True, device) return frappe.session.user
def pin_login(user, pin, device=None): from frappe.sessions import clear_sessions login = LoginManager() login.check_if_enabled(user) p = frappe.db.get_value("User", user, "quick_login_pin") if pin != p: login.fail('Incorrect password', user=user) login.login_as(user) login.resume = False login.run_trigger('on_session_creation') if device: clear_sessions(user, True, device) return frappe.session.user
def get_token(user, pwd, expire_on=None, device=None): if not frappe.db.exists("User", user): raise frappe.ValidationError(_("Invalide User")) from frappe.sessions import clear_sessions login = LoginManager() login.check_if_enabled(user) if not check_password(user, pwd): login.fail('Incorrect password', user=user) login.login_as(user) login.resume = False login.run_trigger('on_session_creation') clear_sessions(user, True, device) if expire_on: frappe.flags.jwt_expire_on = expire_on
def get_token(user, pwd, expire_on=None, device=None): """ Get the JWT Token :param user: The user in ctx :param pwd: Pwd to auth :param expire_on: yyyy-mm-dd HH:mm:ss to specify the expiry :param device: The device in ctx """ if not frappe.db.exists("User", user): raise frappe.ValidationError(_("Invalide User")) from frappe.sessions import clear_sessions login = LoginManager() login.check_if_enabled(user) if not check_password(user, pwd): login.fail('Incorrect password', user=user) login.login_as(user) login.resume = False login.run_trigger('on_session_creation') clear_sessions(user, True, device) if expire_on: frappe.flags.jwt_expire_on = expire_on