Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

raywenderlich OAuth 学习笔记 #101

Open
ApolloZhu opened this issue May 5, 2019 · 0 comments
Open

raywenderlich OAuth 学习笔记 #101

ApolloZhu opened this issue May 5, 2019 · 0 comments

Comments

@ApolloZhu
Copy link
Owner

ApolloZhu commented May 5, 2019

目的

  • 通过 token,而不是用户名和密码实现用户身份验证
  • 可以限制能够访问得到的数据的范围来提升安全性

方法

  • 流程:用户登录第三方网站,输入用户名密码,第三方返回 token
  • 实现:使用 OAuth Swift 框架(做了很好的抽象

例子:Strava

从第三方注册 app,获取信息

image

使用 OAuth Swift:

image

配置 Deep Link 回 App:

image

打开 App 时完成验证,关闭 web view

image

把 access token 传入请求的 authorization header 里:

image

扩展阅读

  • User defaults 不是存储 token 的好地方,应该使用 keychain,没有找视频教程,可以看文章
  • OAuth 服务端的实现参考 https://docs.vapor.codes/3.0/auth/api/
    • 不要存储明文密码到数据库
    • Ray 其他的 vapor 视频里提到了 Turnstile,有兴趣可以仔细研究什么情况
  • bilibili 现在使用的是 session 式的用户认证(随 cookie 发送用户当前 session 信息)

参考资料

OAuth2: https://www.raywenderlich.com/5034-accessing-data-using-oauth

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant