我想知道是否可以在没有用户模型的情况下使用Guardian,以及如何使用它。
我将Phoenix用于服务器,微型API和频道。我在浏览器中有一个带有PouchDB的数据库,我想授权访问这个小API。
事情是,我没有,我不希望在我的后端拥有模型,但Guardian需要一个资源来序列化令牌。
在这种情况下是否可以做某事?
当我调用方法Guardian.serializer.for_token(user)
或Guardian.encode_and_sign(:token)
(使用用户地图)时,返回的是未知资源类型。
我的guardian_serializer.ex是:
@behaviour Guardian.Serializer
def for_token(user = %{:id => 88888888}), do: {:ok, "User:#{user.id}"}
def for_token(_), do: {:error, "Unknown resource type"}
def from_token("User:" <> id), do: {:ok, "User:#{id}"}
def from_token(_), do: {:error, "Unknown resource type"}
感谢。
答案 0 :(得分:0)
如果您不希望Guardian与您的数据库中存在的用户匹配令牌,那么我可以将您的序列化器存根:
"ok"
然后,在致电Guardian.Plug.current_resource
select name as Name, $a.type[0] as Role from (select expand(in('has_father')) from (select from Node where name = 'n1111') unwind in)
let $a=(select inE('UserRole').type as type from (
traverse out('has_father'),in('UserRole') from $parent.$current while out('UserRole').@rid <> #21:0
) where in('UserRole').@rid = #21:0
limit 1
)