虽然nvPress提供了登录接口,但有时并不想在前台手动写一遍登录。那么可以直接调用后台的登录接口,在登录成功后返回前台。
逻辑如下:
graph
frontEnd([前台])--尝试登陆-->Login([调起后台登录页面])
Login-->UserLogin{用户登录}
UserLogin--登录成功,存储nvnonce-->frontEnd
UserLogin--无账号-->Register([注册页面])
Register--注册成功-->UserLogin
在这个逻辑中,有以下两点需要注意:
- 前台检测登录状态
- 调起登录页面及登陆后跳回的方法
检测登录状态
在前台检测登录状态应该参考《nonce鉴权接口》,以及《权限说明 - 主题与后台的鉴权约定》
调起登录页面及登陆后跳回的方法
nvPress后台登录页面地址是:/nv-admin/login
如果需要登录成功后跳回,应该带上redirect参数。redirect参数格式为JSON字符串。例如:
/nv-admin/login?redirect={"url":"http://前台地址"}
注意:
- redirect是JSON字符串,因此务必需要使用双引号。其中的url参数必须是带有http://或https://协议的完整url,不能使用相对地址。
- 登录成功后,登录的nvnonce信息将保存在localStorage或cookies中,因此,前台不能跨域。跨域则无法读取到相关信息也就无法鉴定登录状态。