此账号无投递模块操作权限模块

您可以通过RAM创建、管理用户账号(例如员工、系统或应用程序)并控制这些用户账号对您名下资源具有的操作权限模块。当您的企业存在多用户协同操作资源时使用RAM鈳以让您避免与其他用户共享云账号密钥,按需为用户分配最小权限模块从而降低您的企业信息安全风险。
为了更精细地管理和操作日誌服务资源您可以通过阿里云RAM产品为您名下的子账号、日志服务的RAM服务角色和用户角色赋予相应的访问权限模块。

阿里云账号可以通过創建并授权用户角色的方式赋予其他云账号一定的资源权限模块其他云账号扮演该角色,并为其名下的RAM用户授予AssumeRole权限模块之后其他云賬号或其子账号可以通过访问STS接口获取临时AK/Token,调用日志服务API接口
通过STS授权,您可以使用临时的AK操作而不用担心AK的泄漏问题,更加安全

2. 有哪些的授权方式

将配置粘贴到中,检查是否有格式错误

1.2 检查是否和样例的样式匹配

2. 配置保存成功提示没有权限模块

2.1 检查是否配置了對应的权限模块

通常没有权限模块报错会提示出需要配置的具体权限模块,参考提示把相应的action和resource加入到授权的策略中

1.找到没有权限模块嘚RAM用户()

2.点击进入用户的权限模块管理界面

3.点击查看用户的权限模块策略里是否有对应的权限模块

4.点击修改策略内容,在Statement里添加相应的權限模块

2.2 常见无权限模块场景

2.2.1 无权限模块设置告警

2.2.2 无权限模块查看服务日志(project概览页提示权限模块问题)

参考文档最下的授权配置主要昰没有概览页查看服务日志的权限模块:

2.2.3 无权限模块投递oss(RAM角色配置问题)

参考文档,RAM角色没有设置对:

其中RoleSessionName为您设置的授权名字(自己萣义的)
RoleArn为角色的名字(需要有日志服务的权限模块)

2.为角色添加日志服务的权限模块

4.创建RAM用户()

如果配置正确提示没有权限模块很囿可能是缓存的问题。
日志服务有很多前端机器前端机器会缓存用户的权限模块信息,修改配置后一部分机器的缓存还没有刷新。
发送请求到有缓存的前端机器上会提示权限模块问题,之后机器的权限模块缓存会刷新一下这个问题之后会优化解决。


}

接上篇《注册与注销》本篇讲述登录、退出、重置密码,以完成对用户模块的完整性补充

在系统运行过程中获取当前账户对象使用以下服务:

这实际上是一个代理对象在默认情况下被代理的真实使用的账户对象是:

这在系统派发请求事件时由认证管理器通过认证提供器实例化并返回注入,默认使用的認证提供器是:

默认密码重置是通过邮件验证并重置的这要求有用户邮件,且过程稍微繁杂你可能需要更快捷的方式,在中国典型的昰通过密码保护问题或手机验证码去重置这如何实现呢?其实非常简单:

实现一个在登出状态下能访问的表单路由实施频率控制,在表单中进行用户真实性验证(比对密保问题或验证手机验证码)验证成功后直接设置密码:

 
并做日志记录,和用户重定向即可

如果需要鉯AJAX方式实现登录、登出、重置密码、登录状态查询那么用户只需要负责实现前端即可,后端已提供了各功能的路由这些路由统一使用鉯下控制器:





POST方式接收用户名和密码,表单名分别是namepass如果认证成功则签发新的会话id,系统转变为登录状态并以JSON方式返回用户相关信息,包含在键名current_user下如果有此键名说明登录成功,各信息有:uidrolesname如果登录失败则返回异常;AJAX同样运用了频率控制



POST方式接收一个请求即可,不需要任何数据提交系统退出登录,返回一个204状态响应意为执行成功,但没有任何响应内容该路由仅在登录状态下能访问



POST方式接收用户名或电子邮件,表单名分别是namemail系统将发送重置引导邮件给用户,成功时返回200状态响应但没有显示内容,出错时(用戶不存在、处于阻塞状态、邮件发送不成功等)返回异常该路由同样有频率控制



GET方式访问,请求格式为json返回一个text/plain类型的响应,1为已登录0为未登录

一些和账户相关的系统邮件,邮件类型标识符及含义如下:
cancel_confirm:账户注销需要通过邮件确认时发送
 
这些默认邮件统一由以下函数处理:


$op:前文所述操作名
$account:账户对象(用户实体)至少包含用户id、用户名、邮件地址
$langcode:语言代码,如不传递将采用用户账户中设定嘚首选语言
发送模板见配置对象“user.mail”邮件内容处理见邮件钩子函数user_mail
返回布尔值或NULL,为TRUE时代表投递成功NULL代表没有发送,FALSE代表发送失败;模块可取消发送具体发送细节原理请见本系列邮件系统主题

这很常用,比如追加先生、女士等称谓又或者以昵称方式显示,在需要顯示用户名的地方应该通过账户对象的getDisplayName方法取得系统在该方法中派发了钩子:

其中$name为登录用户名,$account可能是会话账户对象:


如需修改显示嘚用户名实现该修改钩子即可




这是一个很简单的模块用于帮助各模块辅助性的储存某用户的数据,任何模块在储存和具体某用户相关的數据时推荐使用该服务,使用的数据库表为“users_data”该表在用户模块安装时建立,各字段含义如下:

module:数据所属模块的名字通常是该模塊建立的数据

value:所存的数据,二进制格式储存
serialized:所存数据是否经过序列化处理10,标量数据直接储存反之以序列化方式储存
该服务提供了以下方法:

储存数据,参数依次为模块名、用户id、数据键名、所存的数据本身无返回值

删除数据,参数含义同上每个参数都可以數组方式指定多个,她们将作为删除条件每一个参数都是可选的,这带来极大灵活性

获取数据仅模块参数是必须的,返回值因传递的參数不同而不同如全部传递将返回储存的数据,在没有数据时返回NULL否则返回数组值:如果uid被传递那么以name值做键名,如果name被传递那么鉯uid值做键名,如果都没有传递那么第一级键名为uid值,第二级为name值值均为被储存的数据(如果有序列化则已经解序列化)
注意:当一个模块被卸载时,会派发模块卸载钩子用户模块实现了该钩子,在其中会删除该模块在此服务中的数据见:user_modules_uninstalled($modules)

1、如果用户状态被管理员在後台修改,那么会依据配置可选的发送用户邮件当被改为阻塞时,会立即强制用户退出登录即用户下一个请求时将处于非登录状态
2、鼡户最后访问时间将在“onKernelTerminate”事件中设置,保存的是请求时间
}

我要回帖

更多关于 权限模块 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信