gpt4 book ai didi

api - EmberAuth 登录用户成功注册

转载 作者:行者123 更新时间:2023-12-02 06:05:16 24 4
gpt4 key购买 nike

所以我已经完成了 EmberAuth 的所有设置和工作,并且我正在实现用户注册。我的 API 设置为在用户成功注册后返回 auth_token,但我不太确定如何将应用程序移至已登录状态。

我想出的唯一真正有效的解决方案是调用 App.Auth.signIn注册成功后。在“它有效”的意义上这很好,但是当我已经拥有他们的身份验证 token 时,它确实涉及到服务器的不必要的额外往返以使用户登录。

sendRegistration: () ->
self = @
$.post('/users',
user:
email: @email,
password: @password,
password_confirmation: @passwordConfirmation)
.done (response) ->
App.Auth.signIn(
data:
email: self.email
password: self.password
remember: true
)

最佳答案

ember-auth在这里开发。

checkout 最新版本 (v7.1.0)。它具有解决此用例的新功能。如果您已经拥有所有身份验证信息,您现在可以直接注入(inject)登录 session 。只需构造一个预期的“正常”服务器响应,并将其提供给 App.Auth.createSession() .

示例:如果预期的服务器响应是

{"auth_token":"foo", "user_id": 1, "rmb_token":"bar"}

然后打电话
App.Auth.createSession('{"auth_token":"foo", "user_id": 1, "rmb_token":"bar"}');

这会注入(inject)身份验证 session 而不会访问服务器。

它在清除 session 中的对应物(再次没有击中服务器)是
App.Auth.destroySession();

docs 的相关部分是 直接 session 注入(inject)/销毁 .

编辑/更新对于 googlers:语法已更改为 ember-auth 9.x (最新发布)。
auth现在是注入(inject)到路由、 Controller 和 View 中的对象。所以,如果你正在制作 createSession()destroySession()在那里打电话,你可以写
this.get('auth').createSession( /* args */ );
this.get('auth').destroySession( /* args */ );
createSession()电话也可以澄清为
this.get('auth').createSession({auth_token: 'foo', user_id: 1, rmb_token: 'bar'});

因为两者 createSession()destroySession()现在接受一个对象。

关于api - EmberAuth 登录用户成功注册,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17561082/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com